Protocol Extensions


The RabbitMQ implements a number of extensions of the AMQP 0-9-1 specification, which we document here.

Some extensions introduce new protocol methods (operations); others rely on existing extension points such as optional queue arguments.



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.
  • Queue Length Limit allows the maximum length of a queue to be set.
  • Priority Queues support the message priority field (in a slightly different way).

Authentication and Identity

  • The User-ID message property is validated by the server.
  • Clients that advertise the appropriate capability may receive explicit authentication failure notifications from the broker.
  • update-secret to be able to renew credentials for an active connection, when those credentials can expire.

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.

There's also an AMQP 0-9-1 Errata page which explains how various

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!