Where are the AMQP 1.0 implementations? Would it make sense to wait?
Asked Answered
H

6

24

I'm doing research to figure out what messaging solution to settle on for our future products and I can't really figure this one out.

There is a bunch of AMQP 0.9.1 implementations (RabbitMQ, Apache Qpid, OpenAMQ, to name a few), but no AMQP 1.0 implementation, although 1.0 has been finalized October 2011. Well, except for SwiftMQ [1].

Reading up on 1.0, it seems to be a major departure from the pre-1.0 spec, so it seems understandable that there's little enthusiasm for a major rewrite of something that is working fine. In fact, I can't see why RabbitMQ and others wouldn't just decide to migrate to ZeroMQ instead of AMQP 1.0.

Still, I cannot find any clear statement on that by implementors of the pre-1.0 AMQP spec, except some vague commitments like 'striving to always implement the latest AMQP spec'.

Edit: RabbitMQ actually does say

A future version of RabbitMQ will implement AMQP 1.0. Please contact us for details.

However, something tells me that statement is more than 3 years old, i.e. it predates the release of AMQP 1.0.

So are there any indications AMQP 1.0 could become a standard, except for the fact that major banks - and Microsoft - are behind it? The latter btw. without an implementation of its own.

It almost seems like AMQP 0.9.1 is more standard than 1.0 will be.

Well, there's https://github.com/rabbitmq/rabbitmq-amqp1.0, it's self-proclaimed status is prototype, with no work on it apparently for half a year.

[1] My first impression of SwiftMQ I got by means of its author's rant on Spring's lacking AMQP support, which is why I'm not considering it for the time being. I wouldn't want to count on support from that guy.

Houseroom answered 13/8, 2012 at 5:36 Comment(2)
Interesting background on this from iMatix (of ZeroMQ fame): imatix.com/articles:whither-amqpHouseroom
The article on pre-1.0 background that Eugene mentions above was redacted and moved to imatix.com/articles:whats-wrong-with-amqp.Fevre
H
0

According to http://geekswithblogs.net/michaelstephenson/archive/2012/08/12/150399.aspx:

AMQP is not supported at present for Service Bus on premise or in the cloud however there is a webcast explaining Microsoft's position on AMQP and it sounds like an important feature to expect in a future release

So:

Would it make sense to wait?

I guess it's fair to say the answer is: No.

  • MS still isn't there despite all the initial enthusiasm, and I could not find any mention of AMQP in the announcement and the documentation of the recently released Service Bus for Windows Server Update: There's news on the MS side, see David Ingham's answer.
  • the upcoming Qpid release (probably available in the next couple of weeks) will have 1.0 support for the JMS client and the Java broker, that was 11 weeks ago. Predictions are of course hard to make, but as a matter of fact, it's still not here.

So except for SwiftMQ, there isn't any working AMQP 1.0 implementation out there, and not a lot of enthusiasm, judging from recent announcements and statements. I expect Qpid to do the release soon, after all, 1.0 drafters are members of the project - but if not, that would be like the final nail in the coffin.

In any case, AMQP 1.0 is not widely adopted and there are no reliable signs it'll become so in the foreseeable future.

Houseroom answered 29/10, 2012 at 23:45 Comment(4)
The 0.18 release of Qpid which was relased som etime ago now did contain 1.0 support in Java Broker and and 1.0 based JMS client. The 0.20 release is now in alpha and contains basic 1.0 support in the c++ broker and client - that will (I hope!) be improved prior to beta.Divest
AMQP 1.0 support for ActiveMQ is also being developed. Microsoft have done a couple of presentations of their AMQP 1.0 support in ServiceBus and are scheduled to do another at ApacheCon EU (including an interop demo with Qpid and SwitfMQ).Divest
If Qpid supports 1.0, why is it not advertised? qpid.apache.org/download.html lists the supported AMQP versions of Qpid 0.18, but there's only 0-8/0-9 and 0-10. I double-checked, and 0-10 must be different from 1.0, as the former was published in February 2008, according to Wikipedia. Btw. it would make sense to move Qpid out of the list of "net yet AMQP 1.0" list on en.wikipedia.org/wiki/AMQP#AMQP_1.0_Broker_ImplementationsHouseroom
I agree, that is our failure for not updating the website. I will try to rectify that.Divest
L
16

AMQP 1.0 is an alternative to AMQP 0-9-1 in name only. The two are so different that it might have been clearer to give them different names.

Choosing a current 0-9-1 implementation does not limit you:

0-9-1 defines a broker and messaging model, while 1.0 defines a messaging transport. Therefore it is possible to combine the AMQP 1.0 transport with 0-9-1, as RabbitMQ demonstrated at the AMQP 1.0 conference in NYC in 2011. Because it is a transport, AMQP 1.0 can also be attached to proprietary and/or closed non-royalty-free brokers.

AMQP 1.0 has just entered "a 60-day public review period in preparation for a member ballot to consider its approval as an OASIS Standard".

"The 60-day public review starts 14 August 2012 and ends 13 October 2012.

This is an open invitation to comment. OASIS solicits feedback from potential users, developers and others, whether OASIS members or not, for the sake of improving the interoperability and quality of its technical work."

Full details here:

https://www.oasis-open.org/news/announcements/60-day-public-review-for-advanced-message-queueing-protocol-amqp-v1-0-candidate-o

Lallans answered 17/8, 2012 at 10:39 Comment(1)
+1 Thanks for the link that contains references to the statements of use by 5 companies.Houseroom
I
8

The OASIS AMQP 1.0 Standard was ratified this week, see https://www.oasis-open.org/news/pr/amqp-1-0-approval. In terms of 1.0 implementations, it's still a little early and I know there's a lot of development going on, but, as of now, here's a list of available components:

Brokers:

Client libraries:

Impassable answered 3/11, 2012 at 5:35 Comment(0)
H
5

The most recent that I could find in terms of statement from the RabbitMQ team, which, according to their outdated specification page also

is an active participant in the AMQP Working Group, which aims to deliver an implementable AMQP 1.0 draft this year.

is this message from RabbitMQ's Simon MacMullen from January 2012 (ellipsis, emphasis mine):

Also, why would RabbitMQ consider not supporting 1.0? Is the thinking that it may not see industry adoption, or something else?

[..] it's such a big difference from 0-9-1 that I view it as a different protocol really, despite the name. [..]

So yes, I'd like to support it, but I'd also like to support MQTT and SQS and [..]

And it may not see much industry adoption, [..] And without wanting to complain too much, it is rather heavy and complicated, so to support it properly we'd be looking at not doing quite a lot of other stuff we want to.

Of course, if AMQP 1.0 takes off substantially then that could well change things.

Source: https://groups.google.com/d/topic/rabbitmq-discuss/9Hj0FzgyLQk/discussion

Houseroom answered 15/8, 2012 at 0:20 Comment(0)
D
3

There are other 1.0 implementations. The upcoming Qpid release (probably available in the next couple of weeks) will have 1.0 support for the JMS client and the Java broker. Work on 1.0 support for other components is underway (targeted for the subsequent release) and is based on the new proton library, which is designed to be usable itself as a simple way of adding 1.0 support to existing brokers or other systems that would benefit from 1.0 support. So the Qpid project is certainly committed to full support of 1.0 which will eventually replace all previous versions. The APIs have been designed to ease the transition to 1.0.

Divest answered 13/8, 2012 at 9:18 Comment(5)
What makes me hesitate to take this as an indication of broad adoption of AMQP 1.0 in the future, however, is the fact that a bunch of people most involved in refactoring AMQP into what became version 1.0 (John O'Hara, Robert Godfrey) are part of Qpid (qpid.apache.org/people.html), so everything but Qpid adopting 1.0 would be rather surprising. Actually it is surprising that it's taking a whole year after the finalization of the spec.Houseroom
I can understand that and ultimately time will tell. However I am very confident there will be other implementations. You mentioned SwiftMQ, and Microsoft (Azure). I know there are plans to add AMQP 1.0 support to ActiveMQ. One of the nice things about AMQP 1.0 is that it is much easier to support it in existing messaging infrastructure. While existing AMQP implementation will rightly continue to support older versions to ease transition, it seems very unlikely to me that any new brokers based on those older versions will be implemented.Divest
I guess your statement that 0.9.1 adoption won't get stronger going forward is fair enough - no one would want to bet on a dead horse.Houseroom
At present for 0.9.1 you have the choice of two brokers, of which only one has commercial support available (i.e. RabbitMQ). I personally don't see that choice expanding (though I do see bridges between the two versions being available). The 0.9.1 protocol pretty much requires a broker (with 1.0 both brokered and peer-to-peer communication is possible). So I think the question is whether you standardise on an implementation or a protocol. Both are reasonable approaches.Divest
Thanks for pointing to Microsoft Azure, but so far couldn't really find firm evidence for support. I spun that off into stackoverflow.com/questions/11962897Houseroom
F
1

Sad, but especially support is something you can rely on me. ;-)

To answer your question whether it makes sense to wait: YES! Why? Check out Proton.

Proton is based on the AMQP 1.0 messaging standard.

Familiarize answered 13/8, 2012 at 14:3 Comment(0)
H
0

According to http://geekswithblogs.net/michaelstephenson/archive/2012/08/12/150399.aspx:

AMQP is not supported at present for Service Bus on premise or in the cloud however there is a webcast explaining Microsoft's position on AMQP and it sounds like an important feature to expect in a future release

So:

Would it make sense to wait?

I guess it's fair to say the answer is: No.

  • MS still isn't there despite all the initial enthusiasm, and I could not find any mention of AMQP in the announcement and the documentation of the recently released Service Bus for Windows Server Update: There's news on the MS side, see David Ingham's answer.
  • the upcoming Qpid release (probably available in the next couple of weeks) will have 1.0 support for the JMS client and the Java broker, that was 11 weeks ago. Predictions are of course hard to make, but as a matter of fact, it's still not here.

So except for SwiftMQ, there isn't any working AMQP 1.0 implementation out there, and not a lot of enthusiasm, judging from recent announcements and statements. I expect Qpid to do the release soon, after all, 1.0 drafters are members of the project - but if not, that would be like the final nail in the coffin.

In any case, AMQP 1.0 is not widely adopted and there are no reliable signs it'll become so in the foreseeable future.

Houseroom answered 29/10, 2012 at 23:45 Comment(4)
The 0.18 release of Qpid which was relased som etime ago now did contain 1.0 support in Java Broker and and 1.0 based JMS client. The 0.20 release is now in alpha and contains basic 1.0 support in the c++ broker and client - that will (I hope!) be improved prior to beta.Divest
AMQP 1.0 support for ActiveMQ is also being developed. Microsoft have done a couple of presentations of their AMQP 1.0 support in ServiceBus and are scheduled to do another at ApacheCon EU (including an interop demo with Qpid and SwitfMQ).Divest
If Qpid supports 1.0, why is it not advertised? qpid.apache.org/download.html lists the supported AMQP versions of Qpid 0.18, but there's only 0-8/0-9 and 0-10. I double-checked, and 0-10 must be different from 1.0, as the former was published in February 2008, according to Wikipedia. Btw. it would make sense to move Qpid out of the list of "net yet AMQP 1.0" list on en.wikipedia.org/wiki/AMQP#AMQP_1.0_Broker_ImplementationsHouseroom
I agree, that is our failure for not updating the website. I will try to rectify that.Divest

© 2022 - 2024 — McMap. All rights reserved.