AMQP – Advanced Message Queueing Protocol

AMQP is language neutral application-layer wire-protocol for asynchronous messaging. The protocol supports flow-control, guaranteed message delivery, transactions, routing, security. Rabbit MQ is a popular implementation of this protocol.

but I already have JMS?

One key difference between AMQP and JMS – is that the JMS is a API spec. whereas AMQP is a wire spec. Thus AMQP allows for greater inter-operability. i.e. AMQP client developed by vendor X can send messages to another AMQP client developed by vendor Y, without need for any bridge to translated one vendor’s wire-message to another.

Quote from wikipedia :

QUOTE “AMQP mandates the behaviour of the messaging provider and client to the extent that implementations from different vendors are truly interoperable, in the same way as SMTP, HTTP, FTP, etc. have created interoperable systems. Previous attempts to standardize middleware have happened at the API level (e.g. JMS) and this did not create interoperability[2]. Unlike JMS, which merely defines an API, AMQP is a wire-level protocol. A wire-level protocol is a description of the format of the data that is sent across the network as a stream of octets. Consequently any tool that can create and interpret messages that conform to this data format can interoperate with any other compliant tool irrespective of implementation language.” UNQOUOTE

Also AMQP offers much richer functionality than JMS in terms of routing/addressing etc.


What next?

If you are building a distributed application which needs messaging (read pub-sub / guaranteed delivery etc)  – consider and evaluate using AQMP as the messaging protocol.

Also, instead of just pushing XML in and out of these brand new queues – do you want to think about JSON / Google Protocol Buffers for serializing data to/from a language neutral message.



About saratnathb

Building SOA solutions using Oracle Fusion Middleware technology stack.
This entry was posted in Uncategorized and tagged , , , . Bookmark the permalink.

2 Responses to AMQP – Advanced Message Queueing Protocol

  1. Pingback: AMQP | Sarat Buddhiraju's Blog

  2. Pingback: AMQP | Sarat Buddhiraju's Blog

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s