Skip to content

Commit

Permalink
Merge pull request #11713 from rabbitmq/mk-4.0.0-release-notes
Browse files Browse the repository at this point in the history
Initial (very brief) 4.0.0 release notes
  • Loading branch information
michaelklishin authored Jul 15, 2024
2 parents aeeb990 + fca9d91 commit fe4087f
Showing 1 changed file with 76 additions and 0 deletions.
76 changes: 76 additions & 0 deletions release-notes/4.0.0.md
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

0 comments on commit fe4087f

Please sign in to comment.