Hi, 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? -Brett.
signature.asc
Description: PGP signature
_______________________________________________ zeromq-dev mailing list [email protected] https://lists.zeromq.org/mailman/listinfo/zeromq-dev
