[rabbitmq-discuss] AMQP 1.0 Support

Jason J. W. Williams jasonjwwilliams at gmail.com
Fri Apr 20 18:37:07 BST 2012

Hi Gordon

> I don't think it is.

We'll have to disagree. RedHat is one of a couple corporate members of
the WG that were largely responsible for pushing the shift in
direction to what became 1.0, and 1.0 serves those interests.

> An app developer in my view would generally be using an AMQP library, rather
> than implementing the protocol directly, and I can't see how that would be
> made any more difficult (if anything for a certain class of users at least I
> think it would be more intuitive).

Client libraries reflect the primitives present in the protocol, and
thereby directly the difficulty or ease with which they can be used to
build applications.

1.0 replaces useful out-of-the-box ready primitives like queues,
exchanges and bindings with a "build-it-yourself" approach using
nodes, links and filters. 0.9.x gives us the equivalent of power
tools, 1.0 instead makes you build the tools before you can ever get
going. In this regard, 1.0 and ZeroMQ have a lot in common and of the
two ZeroMQ is frankly the better choice. The point to having a broker
is provide those messaging power tools so you can focus on your

Furthermore, any client library attempting to emulate
queue/binding/exchange fabric primitives using 1.0 "bricks" would be
doing so as a  non-standard convention, one that would have to be
adopted by other library writers in exactly the same way to afford the
cross-platform capabilities that 0.9.x has from day one as a draft

> It is certainly not limited to - or even focused on - integration with
> non-AMQP brokers though it is deliberately less imposing in terms of a
> broker implementations internal architecture to promote even wider adoption.

Quoting from a JPMorgan preso on 1.0 as to the design goals:

* Simplify wire protocol
* Global Addressing
* Create a model more easy to retro-fit to legacy
* Extensible layered protocol

All of these serve federation and integration (i.e. broker writers),
not the app developer.

THE reason nodes/links/filters became the new 1.0 primitives was
precisely to enable easier federation with non-AMQP brokers. Want to
forward a message on to a federated broker? No problem, attach another
link pointing to the federated broker with the right filter. 1.0
exists to make life easier on broker implementers and integrators, not
to help app developers/users. It puts the burden on the app developer
to build up the actual primitive he wants. Again, ZMQ is a better 1.0
than 1.0: it has similar primitives, is simpler, and doesn't pretend
to be anything other than a transport erector set.

As an OASIS standard now, I foresee AMQP 1.0 continuing on it's trek
to serve it's corporate masters/designers...which would be fine if it
didn't throw app developers and their productivity to the wolves as
1.0 has done.


More information about the rabbitmq-discuss mailing list