ZeroMQBlueprint

Toby Schneider edited this page May 26, 2016 · 3 revisions

Wire specification [uint32 - protocol specification (e.g. CCL, DCCL, Protobuf, ... )][type/name/subname/subsubname][body of message (variable bytes)]

e.g. [00000000000001][MyMessage][0x2bacd34ef34...] which is 0x000000014d794d6573736167652bacd34ef34...

Protocol specification:

  • protobuf = 1
  • CCL = 2
  • DCCL = 3
  • LCM = 4

PGM (reliable multicast) Possibility

No centralized daemon; works similar to LCM

TCP / Unix Sockets Possibility

gobyd serves a local list of publishers and their applicable sockets.

  • upon request it will provide the current list of publishers for a given variable type.
  • applications can also subscribe to updates to the list.
  • upon request it can update its list with a new publisher

Sequence of actions

  1. publisher A requests new entry to gobyd for type MyMessage on socket "ipc://publisherA-MyMessage".
  2. gobyd replies with acknowledgment of new entry MyMessage
  3. subscriber A requests list of entries from gobyd of type MyMessage.
  4. gobyd gives "ipc://publisherA-MyMessage" to subscriber A and adds subscriber A to notification list for MyMessage
  5. subscriber A subscribes to "ipc://gobyd-updates" for new MyMessage publishers
  6. subscriber A subscribes to "ipc://publisherA-MyMessage"
  7. publisher B requests new entry to gobyd for type MyMessage on socket "ipc://publisherB-MyMessage".
  8. gobyd replies with acknowledgment of new entry MyMessage
  9. gobyd publishes update to all "ipc://gobyd-updates" subscribers that "ipc://publisherB-MyMessage" is providing MyMessage as well.
  10. subscriber A receives update and subscribes to "ipc://publisherB-MyMessage"

Reliability? clients? gobyd?

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.