Skip to content

Commit fe4087f

Browse files
Merge pull request #11713 from rabbitmq/mk-4.0.0-release-notes
Initial (very brief) 4.0.0 release notes
2 parents aeeb990 + fca9d91 commit fe4087f

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

release-notes/4.0.0.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
## RabbitMQ 4.0.0
2+
3+
RabbitMQ `4.0.0` is a new major release.
4+
5+
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).
6+
7+
## Highlights
8+
9+
Some key improvements in this release are listed below.
10+
11+
* [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,
12+
has matured
13+
* 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.
14+
* 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)
15+
on some workloads
16+
* [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
17+
* 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)
18+
* 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,
19+
use quorum queues and/or streams. Non-replicated classic queues remain and their development continues
20+
* Classic queue [storage efficiency improvements](https://github.com/rabbitmq/rabbitmq-server/pull/11112), in particular recovery time and storage of multi-MiB messages
21+
* 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)
22+
* 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
23+
* 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)
24+
25+
See Compatibility Notes below to learn about **breaking or potentially breaking changes** in this release.
26+
27+
## Release Artifacts
28+
29+
RabbitMQ releases are distributed via [GitHub](https://github.com/rabbitmq/rabbitmq-server/releases).
30+
[Debian](https://rabbitmq.com/install-debian.html) and [RPM packages](https://rabbitmq.com/install-rpm.html) are available via Cloudsmith mirrors.
31+
32+
[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)
33+
are other installation options. They are updated with a delay.
34+
35+
36+
## Erlang/OTP Compatibility Notes
37+
38+
This release [requires Erlang 26.2](https://www.rabbitmq.com/docs/which-erlang).
39+
40+
[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/docs/which-erlang#erlang-repositories) explains
41+
what package repositories and tools can be used to provision latest patch versions of Erlang 26.x.
42+
43+
44+
## Upgrading to 4.0
45+
46+
### Documentation guides on upgrades
47+
48+
See the [Upgrading guide](https://www.rabbitmq.com/docs/upgrade) for documentation on upgrades and [GitHub releases](https://github.com/rabbitmq/rabbitmq-server/releases)
49+
for release notes of individual releases.
50+
51+
This release series only supports upgrades from `3.13.x`.
52+
53+
This release requires **all feature flags** in the 3.x series (specifically `3.13.x`) to be enabled before upgrading,
54+
there is no upgrade path from 3.12.14 (or a later patch release) straight to `4.0.0`.
55+
56+
### Required Feature Flags
57+
58+
This release does not [graduate](https://www.rabbitmq.com/docs/feature-flags#graduation) any feature flags.
59+
60+
However, all users are highly encouraged to enable all feature flags before upgrading to this release from
61+
3.13.x.
62+
63+
### Mixed version cluster compatibility
64+
65+
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
66+
upgrade to 4.0.0 or a later patch release in the new series.
67+
68+
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.
69+
Once all nodes are upgraded to 4.0.0, these irregularities will go away.
70+
71+
Mixed version clusters are a mechanism that allows rolling upgrade and are not meant to be run for extended
72+
periods of time (no more than a few hours).
73+
74+
### Recommended Post-upgrade Procedures
75+
76+
TBD

0 commit comments

Comments
 (0)