So how do you avoid poison messages?

Poison messages: if you're in operations then you've probably been woken up for one of these. If you're a developer, you've probably been bashed by operations about these. And if you're a manager, you've probably seen these incidents pop up sooner or later. So what are they, and how do you avoid them?

A poison message is a repeatedly redelivered message that fails being processed every time, because of inherent reasons. Typically, this is due to bad message content. A poison message has the potential to bring message processing to a halt because the system finds itself retrying the same single message every time.

Not all redelivered messages are poison messages: if a message is redelivered due to a transient error then everything is fine. In that case, the message will be processed after at most a few retries.

Poison messages can be avoided by designing an appropriate exception hierarchy in the application, so that only transient exceptions are coming out of the application. For non-transient exceptions, the message can be logged and removed from the queue because retry does not make sense.

This solution works, but can be impractical for production scenarios where you are faced with the facts (and redesigning the exception hierarchy is not an option). Contact us if you would like a free review of your configuration regarding poison messages!

Contact Us

Atomikos Corporate Headquarters
Hoveniersstraat, 39/1, 2800
Mechelen, Belgium

E info@atomikos.com
E sales@atomikos.com
T +3215613055

Subscribe to our newsletter

Never miss an update

Copyright 2017 Atomikos BVBA