Is ZeroMQ production ready?

Alex B picture Alex B · Feb 2, 2011 · Viewed 8.8k times · Source

What are your experiences with ZeroMQ as a general purpose messaging middleware?

  1. Did you run into any show-stopping bugs or non-obvious "features"? E.g. 2.0 was not flushing messages properly, and the troubleshooting guide seems to give the most terrifying workaround of them all: "sleep(1) before exit".
  2. Did the API reduce complexity of applications or did it prove to be troublesome?
  3. Is backwards compatibility often broken?

Answer

ysimonson picture ysimonson · Feb 22, 2011

I'm using it for research, so "semi-production". It's a wonderful framework, and the way things are architected certainly make sense once you fully grok it. But I've hit far too many problems to consider it production ready. I'm using jzmq, so some of this might be specific to that.

  1. Setting up jzmq on OS X / Eclipse is...not pleasant.
  2. Starting the application will occasionally cause an assertion failure in the ZeroMQ C code, so I need to wrap my application in something that checks for this exceptional state.
  3. Errors are oftentimes very undescriptive. I've had far too many illegal state exceptions with no explanatory message.
  4. There's no support for TLS. This is almost a deal-breaker for me, and I could easily see it ruling out its availability for a number of applications.
  5. Documentation is "off". The official guide is nice, but if you have a specific problem, it's usually not helpful. And it takes me longer than usual to find the answers to things when googling around. The mailing list is however pretty active.

BUT, and this is a big but, I can't count how many man-hours it has saved me. This post has a good summary of just a few of the ways it makes life more pleasant.