[zeromq-dev] 0MQ vs ZeroC ICE

Michi Henning michi at triodia.com
Tue Jun 30 00:45:32 CEST 2015

The design philosophies are fundamentally different, as are the abstraction levels.

Ice is RPC middleware with an interface description language (so you get your marshaling code generated for you).

ZMQ is message queuing middleware without any interface description language (so the abstraction level is a fair bit lower).

The most visible difference to me are the failure semantics. With ZMQ, you cannot get prompt failure notification when, for example, the other end is not running. Instead, the message is queued (with an optional timeout). This means that, if you want to know on the calling side about a non-existing request target, you either have to time out or run some heart-beat scheme. Depending on what you want to do, this can be a big problem or no problem at all.

At any rate, the two bits of software are very different. If you want RPC (sync or async), I'd much prefer Ice. If you want message queueing, don't use Ice because it was never designed for that.


On 30 Jun 2015, at 7:17 , Thomas Johnson <thomas.j.johnson at gmail.com> wrote:

> I recently started working on a project that uses ZeroC ICE, which I had never heard of before. Does anyone have opinions on this platform relative to ZMQ?
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev

More information about the zeromq-dev mailing list