3.8.35

Latest release in branch 3.8
Released 09 Jul 2022 (3 years ago)

SoftwareRabbitMQ
Branch3.8
Initial release3.8.0
01 Oct 2019 (6 years ago)
Latest patch release3.8.35
09 Jul 2022 (3 years ago)
RequirementErlang/OTP 21.3+
End of community support31 Jul 2022 (Ended 3 years, 9 months ago)
End of commercial support31 Jul 2022 (Ended 3 years, 9 months ago)
Release noteshttps://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.35
Source codehttps://github.com/rabbitmq/rabbitmq-server/tree/v3.8.35
RabbitMQ 3.8 ReleasesView full list

What Is New in RabbitMQ 3.8

RabbitMQ 3.8 introduces major improvements focused on data safety, operational resilience, and modern observability. The key changes are summarized below.

Category Key Changes
New Queue Type Quorum Queues for strong consistency and safer replication.
Operational Features Feature Flags for rolling upgrades; Single Active Consumer for consumer redundancy.
Observability Built-in Prometheus endpoint and Grafana dashboards.
Security & Auth New OAuth 2.0 / JWT authentication backend.
Core Server Configurable max message size; new queue overflow behavior; reduced binding churn.
CLI & Management New health check commands, quorum queue tools, and feature flag management UI.
Plugin Updates MQTT, Shovel, Federation, and Web plugin improvements and bug fixes.

How does RabbitMQ 3.8 improve queue replication and safety?

The headline feature is Quorum Queues. They replace mirrored queues as the recommended replicated queue type for most use cases.

Built on the Raft consensus algorithm, Quorum Queues prioritize data consistency. They offer non-blocking synchronization for new followers and eliminate the "throw away data on rejoin" behavior of classic mirrored queues. This makes node maintenance and recovery more predictable and safer.

Quorum Queues also introduce a delivery limit policy, letting you automatically drop messages after a certain number of redeliveries to handle poison messages. In practice, this means fewer manual interventions and more resilient systems.

What operational hurdles does 3.8 remove for cluster upgrades?

Feature Flags are the answer. They allow a RabbitMQ cluster to be upgraded from 3.7.x to 3.8.x one node at a time without downtime.

The new subsystem holds back new features until all nodes in the cluster are upgraded and an administrator explicitly enables them. This eliminates the old requirement for a full cluster shutdown during major version upgrades, significantly reducing operational complexity.

New CLI Tools for Health and Rebalancing

The rabbitmq-diagnostics tool now offers tiered health checks. The new rabbitmq-queues tool lets you rebalance queue leaders across the cluster after an upgrade, preventing hot spots.

How is monitoring and observability enhanced?

RabbitMQ 3.8 has native Prometheus support. Metrics are exposed on an HTTP endpoint, ready for scraping.

This is complemented by a set of official Grafana dashboards for visualization. The built-in management UI's metric collection can be disabled if you prefer using this modern observability stack. New metrics like "dropped unroutable messages" and "connection churn" provide deeper insight into broker behavior.

What are the new options for authentication and consumer management?

A new plugin enables OAuth 2.0 authentication using JWT tokens. Clients can use access tokens from an external provider, with permissions mapped to OAuth scopes. This facilitates integration with centralized identity providers.

Single Active Consumer

This feature provides a cleaner alternative to exclusive consumers. You can attach multiple consumers to a queue, but only one is active at a time. If it fails, another takes over automatically. This is transparent to the clients and simplifies building redundant consumer setups.

What core server and plugin improvements should I know about?

Several tweaks improve stability and debuggability. The maximum message size is now configurable (default is 128 MiB). A new queue overflow behavior, reject-publish-dlx, rejects publishes and dead-letters the message when a queue is full.

High queue churn (frequent creation/deletion) is less expensive due to changes in how default bindings are stored. For plugins like Shovel and Federation, sensitive credentials in runtime state are now encrypted to prevent accidental logging.

The MQTT plugin now uses a cluster-wide, consistent check for Client IDs, requiring a majority of nodes to be available for client connections.

FAQ

Can I upgrade from RabbitMQ 3.7 to 3.8 without downtime?
Yes, using rolling upgrades and the new Feature Flags system. You can upgrade nodes one by one while the cluster remains operational. Ensure you're on at least 3.7.18 before starting.

Should I use Quorum Queues or Classic Mirrored Queues now?
For new projects requiring data safety, use Quorum Queues. They offer stronger consistency guarantees and better behavior during node failure and recovery. Classic mirrored queues are not deprecated but Quorum Queues are the future.

Does the built-in Prometheus support replace the Management plugin?
No, it's an alternative. You can use the Prometheus endpoint for metrics and Grafana for dashboards, or continue using the Management UI. You can even disable the Management UI's metrics collection to reduce load if you use Prometheus.

My client library works with 3.7.x. Will it break with 3.8?
No. Client libraries compatible with RabbitMQ 3.7.x remain compatible with 3.8.0. The wire protocol is unchanged for core AMQP 0-9-1 operations.

What is the most critical Erlang/OTP compatibility note?
RabbitMQ 3.8 requires Erlang 21.3 or later. If you are upgrading Erlang and RabbitMQ simultaneously, you must upgrade RabbitMQ first, as CLI tools from pre-3.7.7 releases will fail on Erlang 21+.

Releases In Branch 3.8

Version Release date
3.8.35 09 Jul 2022
(3 years ago)
3.8.34 01 Jun 2022
(3 years ago)
3.8.33 31 May 2022
(3 years ago)
3.8.32 20 May 2022
(3 years ago)
3.8.31 10 May 2022
(3 years ago)
3.8.30 26 Apr 2022
(4 years ago)
3.8.29 13 Apr 2022
(4 years ago)
3.8.28 22 Mar 2022
(4 years ago)
3.8.27 05 Jan 2022
(4 years ago)
3.8.26 18 Nov 2021
(4 years ago)
3.8.25 12 Nov 2021
(4 years ago)
3.8.24 11 Nov 2021
(4 years ago)
3.8.23 23 Sep 2021
(4 years ago)
3.8.22 28 Aug 2021
(4 years ago)
3.8.21 11 Aug 2021
(4 years ago)
3.8.20 09 Aug 2021
(4 years ago)
3.8.19 05 Jul 2021
(4 years ago)
3.8.19-rc.1 02 Jul 2021
(4 years ago)
3.8.18 25 Jun 2021
(4 years ago)
3.8.18-rc.1 22 Jun 2021
(4 years ago)
3.8.18-beta.1 14 Jun 2021
(4 years ago)
3.8.17 08 Jun 2021
(4 years ago)
3.8.17-rc.2 03 Jun 2021
(4 years ago)
3.8.17-rc.1 28 May 2021
(4 years ago)
3.8.16 04 May 2021
(4 years ago)
3.8.15 03 May 2021
(4 years ago)
3.8.15-rc.3 29 Apr 2021
(5 years ago)
3.8.15-rc.2 19 Apr 2021
(5 years ago)
3.8.14 02 Mar 2021
(5 years ago)
3.8.13 27 Feb 2021
(5 years ago)
3.8.13-beta.1 21 Feb 2021
(5 years ago)
3.8.12 16 Feb 2021
(5 years ago)
3.8.12-rc.3 12 Feb 2021
(5 years ago)
3.8.12-rc.2 11 Feb 2021
(5 years ago)
3.8.12-rc.1 02 Feb 2021
(5 years ago)
3.8.12-beta.1 24 Jan 2021
(5 years ago)
3.8.11 21 Jan 2021
(5 years ago)
3.8.10 19 Jan 2021
(5 years ago)
3.8.10-rc.6 15 Jan 2021
(5 years ago)
3.8.10-rc.5 12 Jan 2021
(5 years ago)
3.8.10-rc.1 06 Jan 2021
(5 years ago)
3.8.10-beta.1 08 Nov 2020
(5 years ago)
3.8.9 24 Sep 2020
(5 years ago)
3.8.8 03 Sep 2020
(5 years ago)
3.8.7 17 Aug 2020
(5 years ago)
3.8.6 04 Aug 2020
(5 years ago)
3.8.6-rc.2 29 Jul 2020
(5 years ago)
3.8.6-rc.1 27 Jul 2020
(5 years ago)
3.8.6-beta.1 27 Jul 2020
(5 years ago)
3.8.5 15 Jun 2020
(5 years ago)
3.8.5-rc.2 14 Jun 2020
(5 years ago)
3.8.5-rc.1 11 Jun 2020
(5 years ago)
3.8.4 25 May 2020
(5 years ago)
3.8.4-rc.3 19 May 2020
(5 years ago)
3.8.4-rc.2 19 May 2020
(5 years ago)
3.8.4-rc.1 19 May 2020
(5 years ago)
3.8.4-beta.1 16 May 2020
(5 years ago)
3.8.3 09 Mar 2020
(6 years ago)
3.8.3-rc.2 05 Mar 2020
(6 years ago)
3.8.3-rc.1 13 Feb 2020
(6 years ago)
3.8.3-beta.3 04 Feb 2020
(6 years ago)
3.8.3-beta.2 23 Dec 2019
(6 years ago)
3.8.3-beta.1 21 Dec 2019
(6 years ago)
3.8.2 02 Dec 2019
(6 years ago)
3.8.2-rc.1 08 Nov 2019
(6 years ago)
3.8.1 31 Oct 2019
(6 years ago)
3.8.1-rc.1 30 Oct 2019
(6 years ago)
3.8.1-beta.2 24 Oct 2019
(6 years ago)
3.8.1-beta.1 10 Oct 2019
(6 years ago)
3.8.0 01 Oct 2019
(6 years ago)
3.8.0-rc.3 27 Sep 2019
(6 years ago)
3.8.0-rc.2 22 Sep 2019
(6 years ago)
3.8.0-rc.1 08 Sep 2019
(6 years ago)
3.8.0-beta.7 20 Aug 2019
(6 years ago)
3.8.0-beta.6 03 Aug 2019
(6 years ago)
3.8.0-beta.5 09 Jul 2019
(6 years ago)
3.8.0-beta.4 10 May 2019
(6 years ago)
3.8.0-beta.3 06 Mar 2019
(7 years ago)
3.8.0-beta.2 31 Jan 2019
(7 years ago)
3.8.0-beta.1 08 Nov 2018
(7 years ago)