Last Updated: February 3, 2026
In the previous chapter, we learned about delivery semantics and how at-least-once delivery retries failed messages. But what happens when a message keeps failing?
If a message has a bug, missing data, or references a resource that does not exist, no amount of retrying will help. Without a solution, these "poison" messages would either block the queue forever or consume resources with infinite retries.
Dead letter queues (DLQs) solve this problem.
A dead letter queue is a special queue that stores messages that cannot be successfully processed. Instead of retrying forever or losing the message, the system moves it to the DLQ after a configured number of attempts.
In this chapter, you will learn:
A dead letter queue is a queue that stores messages that could not be processed successfully. It acts as a holding area for problematic messages that need investigation.