Tuesday, April 8, 2014

ZeroMQ

I’ve been working with ZeroMQ at work recently. Its a fairly good library for dealing with network sockets. It does take some time to think in “ZeroMQ-ese”. The learning curve is not really helped by their “guide”. The first two chapters introduce the API. In the 3r4d chapter, they start off by saying that using the API is too complicated, and to use some other higher level API.

This makes it very difficult for people who are unfamiliar with the way ZeroMQ works to follow what is going on. The API isn’t *that* difficult, and if they just provide some examples of how to use it, things would go a lot smoother. For example, I needed to do a multipart message, and I wanted to use the base API. There is *no* example of this in the guide. This is especially bad, because the most common pattern that people use (DEALER/ROUTER) requires use of multipart messages. I can only imagine the difficultly for people who use alternative language bindings that only use the lower level API.

ZeroMQ give you a lot for little cost. Just the auto reconnect worth the price of admission. Its a nice API, even if guide authors don’t think so.