Dream Message Bus

    Concepts still in flux

    Components

    Implementation

    Built-in: PubSubService

    Assembly: mindtouch.dream

    Class: Publisher & Subscriber: MindTouch.Dream.PubSubService

    The local version of pub/sub is implemented as a single service that receives and dispatches events

    Distributed: MindTouch.Dream.Xmpp

    Assembly: mindtouch.dream.bus.xmpp

    Classes:

    • Publisher: MindTouch.Dream.Bus.Xmpp.PubService
    • Subscriber: MindTouch.Dream.Bus.Xmpp.SubService

    The distributed version of the message bus uses separate services for sending and receiving events, connected over Xmpp. A publisher receives events, determines appropriate xmpp recipients and direct messages them to the downstream Xmpp sub services, which then pushes them to its subscribers.

    Notes

    • subscription-set
      • uri.owner
      • subscription
        • @id
        • 1+ channel
        • 0-1 filter
        • 0+ filter conditions
          • - regex or xpath
          • - conditions are ORed
        • 0-1 uri.proxy
          • - must exist if there are more than one uri.recipient
          • - send to this if present
        • 1+ uri.recipient
          • @auth-token
    • event
      • @id
      • 1+ uri.origin
      • 1 channel
      • 1 route
        • 1+ uri.via
      • 1 body (entity?)
        • @format (@type?)
      • 1+ uri.recipient

    POST:publish <- events

    POST:subscribe <- subscription-set -> location

    PUT:subscribe/{location} <- subscription-set

    DELETE:subscribe/{location}

    GET:subscribe/{location} -> subscription-set

    GET:subscribe -> combined subscription-set

    Tag page
    You must login to post a comment.

    Copyright © 2011 MindTouch, Inc. Powered by