[zeromq-dev] ZMTP/1.1 - proposal

Martin Sustrik sustrik at 250bpm.com
Tue May 17 13:55:01 CEST 2011

Hi Pieter,

> * To indicate that the frame is a "control command", which would be
> interpreted by the socket / pattern without being passed to
> applications. Some possible control commands are ping/pong keep-alive,
> ready indicator, etc.

Dunno. I've used some commands (subscribe/unsubscribe) in subscription 
forwarding branch and I've just layered them on top of existing protocol.

It would be good to investigate some use cases first.

As for the two commands mentioned, keep-alive and ready (that's ack, 
right?) they seem to belong to the transport layer, ie. beneath the 0mq 

> * To indicate that the frame is a "label", i.e. used for routing. I've
> no concrete design proposal to replace the current envelope system,
> this would be a place for experimentation.

Yes. That's something I would like to add. It would allow us to remove 
empty stack delimiter message part in REQ/REP.

> In terms of backwards compatibility, it seems the best we can do is
> add a version header to the protocol, and check this in 2.1 and later
> branches.

That would break backward compatibility in 2.1 series.

> I'd suggest the new wire level protocol be used in 2.2 and 3.0, and as
> we learn how to properly layer this, we can make further changes to
> the protocol.

Yes for 3.0. 2.2 is up to you.

> I'm not sure whether people would prefer to experiment with new
> patterns / socket types&  semantics in 2.2 or in 3.0...?

I think Fabien was doing some research. However, patterns are cleanly 
separated vertical portions of the stack, so if he keeps inside his own 
pattern, there are no compatibility implications for anyone else.


More information about the zeromq-dev mailing list