AMQP 0-9-1 vs 1-0
Asked Answered
P

1

27

I am looking for a messaging service for a new project that will have to interface some C# applications with some Java applications. I really like RabbitMQ because it seems to have amazing support for both technologies. I see in the RabbitMQ specs that at the moment only AMQP 0-9-1 model is provided.

Is that a show stopper? Should I maybe address to ActiveMQ which provides AMQP 1.0?

Thanks for your advice

Preengage answered 9/2, 2015 at 3:30 Comment(0)
F
33

Your question is perfectly addressed in the official protocol overview:

AMQP 1.0

Despite the name, AMQP 1.0 is a radically different protocol from AMQP 0-9-1 / 0-9 / 0-8, sharing essentially nothing at the wire level. AMQP 1.0 imposes far fewer semantic requirements; it is therefore easier to add support for AMQP 1.0 to existing brokers. The protocol is substantially more complex than AMQP 0-9-1, and there are fewer client implementations.

RabbitMQ supports AMQP 1.0 via a plugin.

If your clients all implement AMQP 1.0 and it offers significant advantages to you over 0.9.x and you simply cannot live without it and another broker offers better support for 1.0 than RabbitMQ (whose plugin is "experimental" at the time of writing), then yes, maybe you should look at another broker. Otherwise, I doubt it will make a big practical difference for you, and RabbitMQ is working on adding full 1.0 support it seems, so it may be a viable upgrade path in the future. If you yourself cannot point to concrete evidence why 0.9.x alone is a showstopper, I can't either.

Friction answered 9/2, 2015 at 3:34 Comment(4)
Could you link to any evidence you saw regarding RabbitMQ's full support of AMQP 1.0. From what I'm reading they plan on supporting AMQP 0-9-1 'indefinitely' and only supporting AMQP 1.0 via pluginBaronetage
Its supported by the plugin, they will maintain it and fix any bugs. Its kinda full support then?Polymath
Full support != native support. Native support would be (in my view) part of the core without a plugin. But a plugin can be used to fully support something, it is just part of a plugin since it isn't the normal use case for the software.Simply
Just my two cents, but RabbitMQ is architected in such a way that almost everything is a plugin. So the name "plugin" doesn't mean it's not the normal use case for the software.Hittite

© 2022 - 2024 — McMap. All rights reserved.