At-Least-Once Dead Lettering

March 29, 2022 by David Ansari & Karl Nilsson

Quorum queues in RabbitMQ 3.10 provide a safer form of dead lettering that uses at-least-once guarantees for the message transfer between queues. This blog post explains everything you need to know to start using at-least-once dead lettering.

This post also introduces two other RabbitMQ 3.10 features: message Time-To-Live (TTL) for quorum queues and Prometheus metrics for dead lettered messages.


RabbitMQ 3.10.0 release calendar

March 24, 2022 by Mirah Gary & Ed Byford

We intend to release RabbitMQ 3.10.0 on 11 April 2022. While we have been testing it internally for some time, with production-like workloads, we need your help to check that it is as stable and reliable as we believe it is.


Using OPA/Gatekeeper with RabbitMQ Messaging Topology Resources

February 21, 2022 by Mirah Gary

Many organizations have policies around RabbitMQ usage wich they would like to enforce. This blog post explains via example how the Open Policy Agent Gatekeeper project can be used in combination with the RabbitMQ Messaging Topology Operator to manage RabbitMQ resources on Kubernetes and enforce policies on those resources by extending the Kubernetes API.


RabbitMQ is not affected by the Log4j vulnerability

December 16, 2021 by Ed Byford & Arnaud Cogoluègnes

RabbitMQ is not affected by the Log4j vulnerability, read below for more details.


Interoperability in RabbitMQ Streams

October 7, 2021 by Arnaud Cogoluègnes

RabbitMQ streams allow applications to convey detailled information thanks to the powerful message format they use. Streams are a feature of their own, but they also fully integrate with the existing resources and protocols that RabbitMQ supports. This blog post covers the interoperability of streams in RabbitMQ and explores the scenarios it unlocks.


Offset Tracking with RabbitMQ Streams

September 13, 2021 by Arnaud Cogoluègnes

RabbitMQ Streams provides server-side offset tracking for consumers. This features allows a consuming application to restart consuming where it left off in a previous run. This post covers the semantics of offset tracking and how it is implemented in the stream Java client.


RabbitMQ Deprecation Announcements for 4.0

August 21, 2021 by Ed Byford

In RabbitMQ 4.0, we intend to remove some RabbitMQ features to:

  • Increase the resiliency of the core broker
  • Decrease the number of suboptimal configurations available
  • Remove technical surface area (maintaining old code) from the team
  • Reduce the support burden

We continually innovate to meet and exceed our users’ expectations. Removal of older functionality that no longer meets these expectations, or serves our users, means we can focus on our mission to provide a stable, performant, and flexible messaging system.


Message Deduplication with RabbitMQ Streams

July 28, 2021 by Arnaud Cogoluègnes

RabbitMQ Streams Overview introduced streams, a new feature in RabbitMQ 3.9 and RabbitMQ Streams First Application provided an overview of the programming model with the stream Java client. This post covers how to deduplicate published messages in RabbitMQ Streams.

As deduplication is a critical and intricate concept, the post will walk you through this mechanism step by step, from a naive and somewhat broken publishing application to an optimized and reliable implementation.


Connecting to Streams

July 23, 2021 by Arnaud Cogoluègnes

RabbitMQ Streams Overview introduced streams, a new feature in RabbitMQ 3.9. This post covers how client applications should connect to RabbitMQ nodes to get the most benefit from streams when the stream protocol is in use.

Streams are optimized for high throughput scenarios, that’s why technical details like data locality are critical to get the best out of your RabbitMQ cluster. Client libraries can handle most of the details, but a basic understanding of how things work under the hood is essential when a setup involves extra layers like containers and load balancers. Keep reading if you want to learn more about streams and avoid some headaches when deploying your first stream applications!


First Application With RabbitMQ Streams

July 19, 2021 by Arnaud Cogoluègnes

RabbitMQ Streams Overview introduced streams, a new feature in RabbitMQ 3.9. This post continues by showing how to use streams with the Java client. We will write our first application that publishes messages to a stream, and then consumes them.