Skip to main content

Erlang/OTP 27 Is Currently Not Supported

· One min read

Erlang/OTP 27.0 was released on May 20th, 2024. While it contains a lot of exciting features and improvements, unfortunately RabbitMQ currently doesn't work well with this version. We are aware of significant performance regressions, as high as 30% lower message throughput in many common workloads.

We are investigating the root cause of this regression. Please do not use Erlang/OTP 27 with RabbitMQ at this time.

We will announce support for Erlang/OTP 27 when we are confident that it works well with RabbitMQ.

RabbitMQ 3.13.0 Is Here!

· 5 min read

RabbitMQ 3.13 is now available with support for MQTTv5, stream filtering and significant improvements to classic queue performance, especially for larger messages.

Read dedicated blog posts for more details about these changes:

RabbitMQ 3.13 is the final minor release in the 3.x series. The next release will be 4.0!

New website for RabbitMQ 3.13.0

· 5 min read

We have been working for several weeks on a new website for RabbitMQ. We plan to release this significant upgrade shortly after RabbitMQ 3.13.0 is released! At this point, we would love you to visit the new website and tell us what you think :-)

In this blog post, I will go over the reasons we are doing this and what improvements it will bring to you.

Screenshot of the new homepage Screenshot of the new homepage

Screenshot of the new homepage

RabbitMQ 3.12 Performance Improvements

· 13 min read

RabbitMQ 3.12 will be released soon with many new features and improvements. This blog post focuses on the the performance-related differences. The most important change is that the lazy mode for classic queues is now the standard behavior (more on this below). The new implementation should be even more memory efficient while proving higher throughput and lower latency than both lazy or non-lazy implementations did in earlier versions.

For even better performance, we highly recommend switching to classic queues version 2 (CQv2).

Serving Millions of Clients with Native MQTT

· 24 min read

RabbitMQ's core protocol has been AMQP 0.9.1. To support MQTT, STOMP, and AMQP 1.0, the broker transparently proxies via its core protocol. While this is a simple way to extend RabbitMQ with support for more messaging protocols, it degrades scalability and performance.

In the last 9 months, we re-wrote the MQTT plugin to not proxy via AMQP 0.9.1 anymore. Instead, the MQTT plugin parses MQTT messages and sends them directly to queues. This is what we call Native MQTT.

The results are spectacular:

  1. Memory usage drops by up to 95% and hundreds of GBs with many connections.
  2. For the first time ever, RabbitMQ is able to handle millions of connections.
  3. End-to-end latency drops by 50% - 70%.
  4. Throughput increases by 30% - 40%.

Native MQTT turns RabbitMQ into an MQTT broker opening the door for a broader set of IoT use cases.

Native MQTT ships in RabbitMQ 3.12.