[zeromq-dev] Notes from a hackathon

Pieter Hintjens ph at imatix.com
Mon Feb 2 10:23:30 CET 2015

Hi folks,

We had an interesting pre-FOSDEM hackathon on Thursday and Friday, in Brussels.

One of the threads that came out, thanks mainly to Doron Somech
(NetMQ) was a strategy for simplifying ZeroMQ. This started as a
discussion of Nanomsg's dropping of multipart messages.

Overall, multipart messages add a lot of complexity and confusion to
the library and bindings. In case we forget:

- frame vs, message vs. part
- routing id frames
- request-reply envelopes
- router sockets
- identities

Multipart messages are the main reason we can't make threadsafe sockets.

So, we're going to experiment with shifting ZeroMQ (libzmq, NetMQ,
CZMQ, and other bindings) in this direction:

- deprecate multipart messages from the API - when we need framing, we
can use zproto
- deprecate ROUTER and DEALER and slowly replace with SERVER / CLIENT
sockets that refuse multipart data
- deprecate REQ and REP
- SERVER has get/set routing ID on message
- routing ID is an integer
- routing ID cannot be set by peer, so we deprecate ZMQ_IDENTITY
- start to aim for threadsafe sockets
- deprecate the ability to build request-reply chains


This is not a roadmap, nor is this a proposal, it's just a realization
by several of us that multipart messages create complexity, which we
dislike, and which causes cost and irritation.


More information about the zeromq-dev mailing list