RabbitMQ - v3.13.0-beta.1


RabbitMQ 3.13.0-beta.1

RabbitMQ 3.13.0-beta.1 is a preview of a new feature release.

Highlights

This release includes several new features, optimizations, and graduates (makes mandatory) a number of feature flags.

The user-facing areas that have seen the biggest improvements in this release are

  • MQTTv5 support
  • Improved classic non-mirrored queue performance with message sizes larger than
    4 KiB (or a different customized CQ index embedding threshold)
  • Classic queues use version 2 of the storage implementation (CQv2).
    This should significantly improve performance of non-mirrored classic queues

This release also features many internal API improvements in preparation to 4.0
with Khepri.

See Compatibility Notes below to learn about breaking or potentially breaking changes in this release.

Release Artifacts

RabbitMQ releases are distributed via GitHub.
Debian and RPM packages are available via Cloudsmith mirrors, as well as PackageCloud.

Community Docker image, Chocolatey package, and the Homebrew formula
are other installation options. They are updated with a delay (usually a few days).

Erlang/OTP Compatibility Notes

This release requires Erlang 25.0 or later.
This introduces feature parity for x86- and ARM64-based CPUs: Erlang 25 offers the JIT and
modern Flame Graph profiling tooling
for both of those major CPU architectures.

Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision latest patch versions of Erlang 25.x.

Upgrading to 3.13

Documentation guides on upgrades

See the Upgrading guide for documentation on upgrades and RabbitMQ change log
for release notes of other releases.

Required Feature Flags

TBD

Mixed version cluster compatibility

RabbitMQ 3.13.0 nodes can run alongside 3.12.x nodes. 3.12.x-specific features can only be made available when all nodes in the cluster
upgrade to 3.13.0 or any other 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 is covered below.
Once all nodes are upgraded to 3.13.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).

Compatibility Notes

TBD

Minimum Supported Erlang Version

Starting with this release, RabbitMQ requires Erlang 26.0 or later versions. Nodes will fail to start
on older Erlang releases.

Client Library Compatibility

Client libraries that were compatible with RabbitMQ 3.12.x will be compatible with 3.13.0.

Getting Help

Any questions about this release, upgrades or RabbitMQ in general are welcome on the RabbitMQ mailing list.

Changes Worth Mentioning

Release notes are kept under rabbitmq-server/release-notes.

Core Server

Enhancements

  • Reduced memory footprint, improved memory use predictability and throughput of classic queues (version 2, or CQv2).
    This particularly benefits classic queues with longer backlogs.

Classic queue v2 (CQv2) storage implementation is now the default. It is possible to switch
the default back to CQv1 using rabbitmq.conf:

ini # uses CQv1 by default classic_queue.default_version = 1

Individual queues can be declared by passing x-queue-version argument and/or through a queue-version policy.

GitHub issue: #8308

  • Non-mirrored classic queues: optimizations of storage for larger (greater than 4 kiB) messages.

GitHub issue: #6090, #8507

  • A subsystem for marking features as deprecated.

GitHub issue: #7390

Bug Fixes

This release includes all bug fixes shipped in the 3.12.x series.

  • Feature flag discovery on a newly added node could discover an incomplete inventory of feature flags.

GitHub issue: #8477

  • Feature flag discovery operations will now be retried multiple times in case of network failures.

GitHub issue: #8491

MQTT Plugin

Enhancements

  • Support for MQTTv5 (with limitations).

GitHub issues: #7263, #8681

AMQP 1.0 Plugin

Bug Fixes

  • During AMQP 1.0 to AMQP 0-9-1 conversion, the Correlation ID message property is now stored as x-correlation-id (instead of x-correlation) for values longer than 255 bytes.

This is a potentially breaking change.

GitHub issue: #8680

Dependency Changes

TBD

Source Code Archives

To obtain source code of the entire distribution, please download the archive named rabbitmq-server-3.13.0.tar.xz
instead of the source tarball produced by GitHub.


Details

date
June 27, 2023, 8:01 p.m.
name
RabbitMQ 3.13.0-beta.1
type
Pre-release
👇
Register or login to:
  • 🔍View and search all RabbitMQ releases.
  • 🛠️Create and share lists to track your tools.
  • 🚨Setup notifications for major, security, feature or patch updates.
  • 🚀Much more coming soon!
Continue with GitHub
Continue with Google
or