[zeromq-dev] Various Majordomo protocol versions

Brett Viren brett.viren at gmail.com
Thu Feb 27 20:57:38 CET 2020


I'm trying to understand the Majordomo protocol landscape.  I thought it
was simple but the more I looked, the more confused I get.  Let me
summarize what I find and please say where I get anything wrong.
Ultimately, I'm trying to figure out how best to adopt the general
Majordomo pattern into a project of ours.

It seems there are at least four versions of the protocol in the wild:

0.1: is what's in the Zguide examples.  The clients and workers are both
strictly synchronous.

0.2: is what is described in RFC 18/MDP.  It adds new PARTIAL/FINAL
commands to 0.1 and so some async behavior.  I find it implemented in
the Python package on github at shoppimon/majortomo.

"0.3": A non-spec'ed extension to 18/MDP referenced in this issue:
https://github.com/zeromq/majordomo/issues/34 and apparently living in
the gitub repo zeromq/majordomo under libmdp/.  It replaces the
PARTIAL/FINAL commands of 18/MDP with a REPORT command (and maybe other
things).  It is not using zproto.

"0.x": the contents of the github repo zeromq/majordomo src/ directory.
This appears to be a zproto based extension to 18/MDP and not "0.3" as
it still has PARTIAL/FINAL.  However, the move to zproto seems to break
18/MDP message format in three ways I can see:

- prefixing with signature 0xAAA4

- packing the initial frames of 18/MDP into one

- adding zproto message type IDs in addition to 18/MDP IDs which are
  still present as zproto msg field "messageid"

I call this "0.x" because I don't know if it has a real version.  In the
Zproto XML the comment claims it is Majordomo Protocol version 0.2 and
defines VERSION to 2.  However, because of the message packing changes
zproto brings I think it's not compatible with 18/MDP (right?).

Does this summarize the situation correctly?  


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20200227/e7f2048b/attachment.sig>

More information about the zeromq-dev mailing list