RabbitMQ has come a long way from its early days as a lightweight messaging broker to becoming one of the most widely adopted open source messaging platforms in the world. Now under Broadcom, VMware Tanzu RabbitMQ continues to evolve with enterprise-grade capabilities and a focus on performance, observability, and developer experience. With the upcoming release of version 4.2, we’re excited to introduce powerful new features—such as scheduled and delayed messages, Federation and Shovel support, SQL message selectors for Streams, message interceptors, enhanced observability, and a new Streams browser—making it even more capable for modern, event-driven, and AI-powered applications.
Messaging backbone of Tanzu Data Intelligence
As a key component to the newly introduced Tanzu Data Intelligence offering, Tanzu RabbitMQ empowers data agility by addressing data fragmentation challenges with versatile protocol support from IoT to critical messaging infrastructure for massive financial institutions and government agencies. Infrastructure complexity can be simplified with Tanzu RabbitMQ through its proven modernization of incumbent and legacy messaging patterns. Tanzu RabbitMQ supports conventional messaging alongside persistent streaming with advanced message filtering for data in flight. This can remove the conventional batching approach to ingesting data (which causes workflow bottlenecks), as well as helps to enable the right data from many sources to get to the right place, in real time through the advanced message routing built into Tanzu RabbitMQ, enabling a true event-driven architecture.
Let’s explore the new features in detail.
Shovel
This significant update to one of Tanzu RabbitMQ’s most popular plugins introduces crucial enhancements: cluster awareness, message protocol transparency, and overall performance improvements. Shovel is widely used by thousands of users to reliably move messages between RabbitMQ brokers, whether within the same cluster or across different clusters. A key advancement is the removal of the constraints imposed by AMQP 0.9.1, making Shovel more flexible than ever before. It can now seamlessly interoperate across diverse systems, regardless of the message protocol being used, greatly expanding its utility in heterogeneous environments.
SQL filter expressions for Streams
Building upon the release highlights of Tanzu RabbitMQ 4.1, which introduced AMQP 1.0 filter expressions, this new feature represents a significant leap forward in message filtering capabilities for streams. While AMQP 1.0 filter expressions allowed receivers to match multiple values from properties and application-properties sections, including prefix and suffix matching, they were somewhat limited compared to SQL-like filtering. This new feature will provide much more flexibility and more powerful filtering capabilities, offering an SQL-like syntax for querying messages within streams. It is the next logical evolution for AMQP 1.0 and Streams, directly building on the foundation of AMQP filter expressions shipped in Tanzu RabbitMQ 4.1. This enhancement enables far more powerful and sophisticated streaming use cases within RabbitMQ. When combined with the previously released bloom filter based approach the power of the overall filtering in RabbitMQ Streams is immense.
Message interceptors
This straightforward yet powerful feature enables the development of plugins that can intercept both incoming and outgoing messages across AMQP 0.9.1, AMQP 1.0, and MQTT protocols. These interceptor plugins offer a wide range of possibilities, such as validating message metadata, adding annotations to messages for enhanced context, or performing arbitrary side effects like logging or auditing.
Currently, there are three primary interceptors available:
- Timestamp (incoming and outgoing) – This interceptor allows for the precise capture or modification of timestamps for messages as they enter and leave the system, crucial for auditing and performance analysis.
- Routing node – Provides visibility into or control over the routing node a message passes through, which is valuable for debugging and understanding message flow.
- MQTT client ID – Enables the interception and manipulation of messages based on the MQTT client ID, offering more granular control in MQTT-based applications.
Improved observability
Maintaining the health and performance of highly durable Quorum Queues is now easier than ever. It is now possible to monitor the segment file count for Quorum Queues directly using the RabbitMQ Prometheus endpoint in conjunction with Grafana dashboards. This crucial capability empowers users to proactively monitor that these robust queues are not being saturated, helping to uncover potential publisher/consumer issues before they escalate into service disruptions.
Under-the-hood developments
Log compaction – While not directly visible to end users, this foundational work is absolutely vital to the highly durable message queue type that is Quorum Queues. This development fundamentally alters the current FIFO (first-in, first-out) nature of Quorum Queues, introducing a new model that enhances flexibility of use with this critical queue type. As a direct result of this new approach, there are also noticeable performance benefits, contributing to a more efficient and robust message queuing system.
Khepri – default – The newly released metadata store, Khepri, has now been designated as the default for all new RabbitMQ clusters. This strategic decision enables new deployments to immediately benefit from the enhanced capabilities and stability offered by Khepri, streamlining cluster management and improving overall system reliability.
Federation – Previously consolidated into a single plugin, the functionalities for queue and exchange federation have now been strategically separated. This creates two independent and more focused plugins, offering more flexibility and easier management for users deploying federated RabbitMQ environments.
VMware Tanzu RabbitMQ 4.2 represents a significant leap forward in empowering modern microservices architectures and accelerating development cycles. With its robust and flexible messaging capabilities, Tanzu RabbitMQ provides the essential backbone for distributed systems, enabling seamless communication between independent services. Furthermore, its extensive collection of client libraries for various programming languages significantly streamlines integration, allowing developers to quickly build and deploy applications with unparalleled efficiency.
To learn more about Tanzu RabbitMQ, feel free to reach out to us.