March 24 2026
Dead Letter Queue
What a dead letter queue means, why not every message should be retried forever, and how to isolate failure without losing traceability.
What it is
A dead letter queue, or DLQ, is where messages go after they could not be processed safely.
Instead of retrying forever, the system removes that message from the main path.
When it matters
This matters when you have bad messages, corrupted payloads, or repeated failures that retry will not fix.
Without a DLQ, the same message can:
- block consumers
- create infinite retry loops
- hide the real problem in the noise
Common mistake
The classic mistake is treating the DLQ as an automatic graveyard.
If messages go there and nobody looks, you only changed where the failure sits.
Short example
A worker receives an event with an invalid payload.
After a few attempts, it stops retrying and sends the message to the DLQ.
The main flow keeps moving and the team can inspect the case with context.
Why it helps
A DLQ protects the main path without erasing the evidence of failure.
It does not solve the problem by itself.
It creates a safe place to handle what no longer belongs in the normal flow.
Infinite retry hides defects. A DLQ separates what needs a different response.
You finished this article
Next step
Backoff Next step →Share this page
Copy the link manually from the field below.