One of the first class citizens in the “IoT protocols city” is the AMQP (Advanced Message Queue Protocol) protocol that is so popular even if it seems that there are few good resources to start understanding how it works under the cover (after a few searching on Google and Bing). Of course, for each protocol the most complete resource is the official specification but more people consider it very difficult to read (if they don’t need to implement it).
To simplify your understanding, I’d like to wrap up some resources useful to you to start studying AMQP protocol.
A good starting point is an old but very useful article by Kelly Sommers (aka “kellabyte” on Twitter) who explains how the AMQP 1.0 specification is completely different from the old AMQP 0.9.1 specification : Clarifying AMQP.
For an overview at high level, I found the articles posted by Chuck Rolke (from Red Hat) on his blog very interesting :
- Hello World ! : a starting point article with base concepts about AMQP
- A-MQ and AMQP.Net Lite with TLS/SSL : configuring SSL/TLS support for securing AMQP communication
- AMQP Illustrated : a journey around the messages exchange between client and broker
To deep into the protocol about message framing and type system you can read my articles :
- AMQP protocol built in type system by example : introduction to AMQP frames and built in type system
- AMQP on the wire messages content framing : a journey inside the messages structure with a sending example
- AMQP message accepted encoding on the wire : what it means to receive and accept a message at wire level
The great thing is that all examples related to the above blog posts use the AMQP .Net Lite library (an AMQP C# implementation) from Microsoft as client.
Few articles … but very useful.
Of course, I read the official specification because in my humble opinion it’s always the best resource and I’d like to understand how the things work under the cover (in my case it’s all related to Azure Service Bus used in the IoT space that support AMQP protocol).
Last but not least, there is a great discussion on Channel9 about AMQP 1.0 and its general availability in Microsoft Azure Service Bus (it was 2013) between Clemens Vasters and David Ingham that we can consider the AMQP gurus without any doubts.
If you have other resources to enrich the above list, please don’t hesitate to contact me !
[Update October 2nd 2015]
Clemens Vasters (from the Microsoft Azure Messaging team) is a guru on AMQP protocol and today he published the great presentation Introduction to AMQP 1.0 with an in depth analysis about the architecture and all the related features. It’s a must read for understanding how the protocol works under the hood on the wire.
[Update October 5th 2015]
- Core Elements
- Message Transfers
- Flow Control
- Primitive Type Encoding
- Composite Types and Messages
If you prefer, the videos are also available as playlist on YouTube here.
What can I say ? No words … it’s Clemens’ stuff 😉
[Update January 18th 2016]
Today my “AMQP Essentials” cheat sheet was published on DZone web site as refcard. It’s a lightweight introduction to the AMQP protocol with all main features in a single short PDF file (6 pages).