AMQPDelayer 1.1
We are excited to announce the release of version 1.1 of the AMQPDelayer application. This program is designed to work alongside MailerQ, reducing the load on both RabbitMQ and MailerQ by temporarily removing delayed messages from RabbitMQ and storing them elsewhere. This optional tool helps optimize system performance by alleviating strain on these key components.
Support for "reply-to" message properties
Messages read from RabbitMQ that include a "reply-to" header are now sent back to the exchange specified in this header after their delay period. This simplifies integration with MailerQ, as MailerQ can be configured to add this header to delayed messages. Additionally, you can now connect multiple MailerQ instances to the same AMQPDelayer, offering greater flexibility in your setup.
Configurable transaction timeout
A new "timeout" option has been added to the configuration file, allowing you to set a maximum duration for messages to remain in-flight before they are flushed to disk and acknowledged back to RabbitMQ. This ensures that messages are periodically written to disk and prevents connection issues if RabbitMQ's consumer-timeout expires.
Storage-aware message processing
When storage approaches its maximum capacity, the AMQPDelayer will stop reading messages from RabbitMQ. This prevents the delayer from stalling or crashing due to storage limitations, ensuring reliable operation even under high load.
Automatic removal of expired messages
Messages that have already expired when read from RabbitMQ are now automatically removed from the queue using the expiration header. While this feature is not active when using AMQPDelayer with MailerQ, it can be beneficial in other configurations where expired messages need to be cleaned up efficiently.
Enhanced web interface and metrics
The built-in web interface now supports the /first and /last endpoints, allowing you to retrieve the first and last messages stored in the system. This provides better visibility into what is stored in the delayer. Additionally, the Prometheus metrics page has been expanded to include more data, such as the size of in-memory buffers, offering deeper insights into system performance.
How to upgrade
The new version is stored in our apt repository. You can upgrade to the new version using your apt package manager.