Differences between AMQP 1.0 vs. 0.91 Protocol

Summary

AMQP 1.0 (Advanced Message Queuing Protocol) is an open-source, binary wire protocol designed to provide a messaging backbone for distributed applications. It is designed to provide reliable, secure and robust messaging while improving performance and scalability. AMQP 1.0 is an international standard for messaging middleware, providing a platform for applications and services to communicate with each other. It is an interoperable protocol that provides a common language for messaging systems.

AMQP 0.9.1 is an open-source wire-level messaging protocol that provides an interoperable messaging platform for applications, middleware, and other systems. It enables applications to communicate in a secure and reliable manner, independent of the underlying hardware and software. It was originally developed by JPMorgan Chase and is now maintained by the Advanced Message Queuing Protocol Working Group. AMQP 0.9.1 is the most recent version of the protocol.

Some popular message brokers that still use AMQP 0.9.1 include RabbitMQ, Apache ActiveMQ, Apache Qpid, and Solace PubSub+.

RabbitMQ, Apache ActiveMQ, Apache Qpid, and Azure Service Bus are some of the message brokers still using AMQP 1.0.

AMQP 1.0 is a major version upgrade from AMQP 0.9.1. AMQP 1.0 includes improvements to the wire protocol and an updated messaging model. It adds flexibility to the messaging model, allowing for easier integration with other technologies, such as web services. It also adds support for a more robust security model, better message routing capabilities, and enhanced reliability. AMQP 1.0 also provides a more efficient binary payload format, which results in improved performance and scalability.

Message Brokers

  • Apache Kafka
  • RabbitMQ
  • ActiveMQ
  • TIBCO Enterprise Message Service
  • Solace PubSub+
  • IBM MQ
  • Microsoft Azure Service Bus
  • Google Cloud Pub/Sub
  • Amazon Simple Notification Service (SNS)
  • Apache ActiveMQ Artemis

AMQP 1.0 vs 0.9.1

The following table summarises the major differences between 1.0 and 0.9.1:

FeatureAMQP 1.0AMQP 0.9.1
ProtocolBinary protocolText protocol
ModelsSender/Receiver,Exchange/Queue
Publish/Subscribe,
Request/Response
QueuesStatefulStateless
MessagesProperties andNo properties
Application Properties
TransportPluggableFixed TCP
RoutingBased on AddressBased on Route
LinkingDynamicStatic
SessionsConcept of SessionsNo Sessions
SecurityAuthentication &No Authentication
Authorization
TransactionSupportedNot Supported
HeaderOptionalMandatory
FlowWindow-basedCredit-based
StateSymmetricAsymmetric
DurableOptionalMandatory
TimeoutOptionalMandatory
TTLOptionalMandatory
RedeliverOptionalMandatory
Dead-LetterOptionalMandatory
NameOptionalMandatory
RoutingBased on AddressBased on Route
ExchangesMulti-castUni-cast
ConsumerControlNo Control
DeliveryGuaranteeNo Guarantee
EncodingPluggableFixed