Protocol Extensions

The RabbitMQ Server implements a number of extensions of the AMQP specification, which we document here.


  • Confirms (aka Publisher Acknowledgements) are a lightweight way to know when RabbitMQ has taken responsibility for messages.
  • Blocked Connection Notifications allows clients to be notified when a connection is blocked and unblocked.


Message Routing

Message Lifecycle

  • Per-Queue Message TTL determines how long an unconsumed message can live in a queue before it is automatically deleted.
  • Per-Message TTL determines the TTL on a per-message basis.
  • Queue TTL determines how long an unused queue can live before it is automatically deleted.
  • Dead Letter Exchanges ensure messages get re-routed when they are rejected or expire.
  • Length Limit allows the maximum length of a queue to be set.
  • Priority Queues support the AMQP message priority field (in a slightly different way).

Authentication and Identity

AMQP 0-9-1 Spec Differences

  • Some features that were in AMQP 0-8 were deprecated in AMQP 0-9-1. We have undeprecated some of them and introduced a couple of tiny behaviour changes that improve usability of the product. Please refer to the spec differences page.

Getting Help and Providing Feedback

If you have questions about the contents of this guide or any other topic related to RabbitMQ, don't hesitate to ask them on the RabbitMQ mailing list.

Help Us Improve the Docs <3

If you'd like to contribute an improvement to the site, its source is available on GitHub. Simply fork the repository and submit a pull request. Thank you!