-
Notifications
You must be signed in to change notification settings - Fork 3.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Initial (very brief) 4.0.0 release notes
- Loading branch information
1 parent
aeeb990
commit fca9d91
Showing
1 changed file
with
76 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
## RabbitMQ 4.0.0 | ||
|
||
RabbitMQ `4.0.0` is a new major release. | ||
|
||
Starting June 1st, 2024, community support for this series will only be provided to [regularly contributing users](https://github.com/rabbitmq/rabbitmq-server/blob/main/COMMUNITY_SUPPORT.md) and those who hold a valid [commercial support license](https://tanzu.vmware.com/rabbitmq/oss). | ||
|
||
## Highlights | ||
|
||
Some key improvements in this release are listed below. | ||
|
||
* [Khepri](https://www.youtube.com/watch?v=whVqpgvep90), an [alternative schema data store](https://github.com/rabbitmq/rabbitmq-server/pull/7206) developed to replace Mnesia, | ||
has matured | ||
* AMQP 1.0 is now a core protocol that is always enabled. Its plugin is now a no-op that only exists to simplify upgrades. | ||
* The AMQP 1.0 implementation is now significantly more efficient: its peak throughput is [more than double than that of 3.13.x](https://github.com/rabbitmq/rabbitmq-server/pull/9022) | ||
on some workloads | ||
* [AMQP 1.0 clients now can manage topologies](https://github.com/rabbitmq/rabbitmq-server/pull/10559) similarly to how AMQP 0-9-1 clients do it | ||
* The AMQP 1.0 convention (address format) used for interacting with with AMQP 0-9-1 entities [is now easier to reason about](https://github.com/rabbitmq/rabbitmq-server/pull/11618) | ||
* Mirroring (replication) of classic queues [was removed](https://github.com/rabbitmq/rabbitmq-server/pull/9815) after several years of depracation. For replicated messaging data types, | ||
use quorum queues and/or streams. Non-replicated classic queues remain and their development continues | ||
* Classic queue [storage efficiency improvements](https://github.com/rabbitmq/rabbitmq-server/pull/11112), in particular recovery time and storage of multi-MiB messages | ||
* Node with multiple enabled plugins little on disk data to recover now [start up to 20-30% faster](https://github.com/rabbitmq/rabbitmq-server/pull/10989) | ||
* CQv1, [the original classic queue storage layer, was removed](https://github.com/rabbitmq/rabbitmq-server/pull/10656) except for the part that's necessary for upgrades | ||
* Several I/O-related metrics are dropped, they should be [monitored at the infrastructure and kernel layers](https://www.rabbitmq.com/docs/monitoring#system-metrics) | ||
|
||
See Compatibility Notes below to learn about **breaking or potentially breaking changes** in this release. | ||
|
||
## Release Artifacts | ||
|
||
RabbitMQ releases are distributed via [GitHub](https://github.com/rabbitmq/rabbitmq-server/releases). | ||
[Debian](https://rabbitmq.com/install-debian.html) and [RPM packages](https://rabbitmq.com/install-rpm.html) are available via Cloudsmith mirrors. | ||
|
||
[Community Docker image](https://hub.docker.com/_/rabbitmq/), [Chocolatey package](https://community.chocolatey.org/packages/rabbitmq), and the [Homebrew formula](https://www.rabbitmq.com/docs/install-homebrew) | ||
are other installation options. They are updated with a delay. | ||
|
||
|
||
## Erlang/OTP Compatibility Notes | ||
|
||
This release [requires Erlang 26.2](https://www.rabbitmq.com/docs/which-erlang). | ||
|
||
[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/docs/which-erlang#erlang-repositories) explains | ||
what package repositories and tools can be used to provision latest patch versions of Erlang 26.x. | ||
|
||
|
||
## Upgrading to 4.0 | ||
|
||
### Documentation guides on upgrades | ||
|
||
See the [Upgrading guide](https://www.rabbitmq.com/docs/upgrade) for documentation on upgrades and [GitHub releases](https://github.com/rabbitmq/rabbitmq-server/releases) | ||
for release notes of individual releases. | ||
|
||
This release series only supports upgrades from `3.13.x`. | ||
|
||
This release requires **all feature flags** in the 3.x series (specifically `3.13.x`) to be enabled before upgrading, | ||
there is no upgrade path from 3.12.14 (or a later patch release) straight to `4.0.0`. | ||
|
||
### Required Feature Flags | ||
|
||
This release does not [graduate](https://www.rabbitmq.com/docs/feature-flags#graduation) any feature flags. | ||
|
||
However, all users are highly encouraged to enable all feature flags before upgrading to this release from | ||
3.13.x. | ||
|
||
### Mixed version cluster compatibility | ||
|
||
RabbitMQ 4.0.0 nodes can run alongside `3.13.x` nodes. `4.0.x`-specific features can only be made available when all nodes in the cluster | ||
upgrade to 4.0.0 or a later patch release in the new series. | ||
|
||
While operating in mixed version mode, some aspects of the system may not behave as expected. The list of known behavior changes will be covered in future updates. | ||
Once all nodes are upgraded to 4.0.0, these irregularities will go away. | ||
|
||
Mixed version clusters are a mechanism that allows rolling upgrade and are not meant to be run for extended | ||
periods of time (no more than a few hours). | ||
|
||
### Recommended Post-upgrade Procedures | ||
|
||
TBD |