Microsoft recently announced general availability of AMQP support for Windows Azure Service Bus. The feature has been in preview for about six months now and allows interoperability between applications built on various technologies and different operating systems.
AMQP is an efficient, binary, wire-level, application layer protocol. Advantages of supporting it are -
- Flexibility of using different languages or frameworks to build different parts of your system and still allow them to talk to each other through a message broker
- Reduced lock-in and hence easier porting of existing applications. For example, you can now port Java applications using JMS to start using Windows Azure Service Bus with minimal work.
There are guides on how to make applications working on PHP, Python, Java and .NET work with Windows Azure Service Bus using AMQP.
Advanced Message Queuing Protocol has been gaining industry support as a replacement for proprietary messaging protocols, recently becoming an OASIS standard. In fact, Microsoft started supporting this standard as far back as 2008.
There are other popular messaging protocols as well - STOMP (a text based protocol) and MQTT (low bandwidth, ideal for internet of things) each of which can provide different advantages in different scenarios. The article “Choosing Your Messaging Protocol” by Andy Piper gives a good comparison between their relative strengths. In fact, RabbitMQ supports all three, including allowing different end points to use different protocols.