From fca9d9131c7c2c29c6e29890226320cc17fb2f06 Mon Sep 17 00:00:00 2001 From: Michael Klishin Date: Mon, 15 Jul 2024 01:07:43 -0400 Subject: [PATCH] Initial (very brief) 4.0.0 release notes --- release-notes/4.0.0.md | 76 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 release-notes/4.0.0.md diff --git a/release-notes/4.0.0.md b/release-notes/4.0.0.md new file mode 100644 index 000000000000..860fc714280b --- /dev/null +++ b/release-notes/4.0.0.md @@ -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 \ No newline at end of file