LWN.net Logo

0MQ: A new approach to messaging

0MQ: A new approach to messaging

Posted Jan 21, 2010 21:40 UTC (Thu) by pieterh (guest, #52123)
In reply to: 0MQ: A new approach to messaging by emk
Parent article: 0MQ: A new approach to messaging

iMatix, which makes 0MQ, also designed the core of AMQP as it is exists today and makes
OpenAMQ, the first AMQP implementation. So we're well aware of the overlap and competition
between 0MQ and AMQP. AMQP is a very nice message routing and queering abstraction, derived
from JMS. There are many others, and if you look at RestMS (http://www.restms.org), another of
our works, you'll see some alternative views.

Basically, 0MQ is a low-latency data center fabric, AMQP is an enterprise fabric, and RestMS is a
internet-scale fabric. There is overlap but they are complementary. You can never imagine doing
4M messages a second over AMQP, it's just way too heavy. But 0MQ has no semantics for inter-
broker federation, such as OpenAMQ has. Likewise, neither 0MQ nor AMQP works on Internet
scales, where RESTful principles become more important than immediate performance.


(Log in to post comments)

0MQ: A new approach to messaging

Posted Jan 22, 2010 16:39 UTC (Fri) by zooko (subscriber, #2589) [Link]

Why isn't AMQP suitable for Internet-scale?

See also "Delay-Tolerant Networking: http://www.dtnrg.org/wiki

0MQ: A new approach to messaging

Posted Jan 23, 2010 22:12 UTC (Sat) by pieterh (guest, #52123) [Link]

> Why isn't AMQP suitable for Internet scale?

I listed a number of problems with AMQP here: http://www.ipocracy.com/blog:10-principles-
for-amqp. You might also read this: http://www.zyre.com/blog:_start/p/2

Mainly, AMQP is too complex. The reasons are detailed and historical and I take responsibility for
many of the design decisions, such as using binary framing for control commands. The effort
needed to make a client stack is too heavy.

AMQP also ignores the principles that make for successful Internet protocols. Architectural ones,
such as REST but also established practice such as making many small RFCs, not a single huge
one.

Having said this, AMQP works very well indeed inside the enterprise, where we've used it for
many projects. It solves a certain class of messaging problem very nicely. There are many
classes of messaging problem. As I said, AMQP basically sits in the JMS space. You would not
use JMS across the Internet.

Hope this helps.

0MQ: A new approach to messaging

Posted Jan 24, 2010 7:33 UTC (Sun) by zooko (subscriber, #2589) [Link]

Thanks for the answers and the links!

0MQ: A new approach to messaging

Posted Jan 28, 2010 20:45 UTC (Thu) by z8000 (guest, #63250) [Link]

Why is 0MQ not appropriate at "Internet scales" (and I presume "should" be relegated to LANs)?
Perhaps I don't fully grok what you mean by "Internet scale" (WAN?).

I ask because (1) it looks great for a general transport at any "scale" and (2) the article itself
discusses a scenario in which 0MQ could be used over a WAN (branch offices, the forwarder, etc.).

What am I missing?

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds