Pattern · seen in 1 breakdown across 1 company
Dead Letter Queue
Definition
Give the processing path an explicit route for declared failures: a message that cannot be processed — after retries, or on a non-transient error — is negatively acknowledged and persisted to a separate queue or topic, and the main flow's progress marker passes over it. The pattern converts an indefinite blockage (or an indefinite retry loop) into a deferred, inspectable operator decision: dead-lettered items are stored with enough context to be replayed into the main flow (merge) or discarded (purge) later, deliberately, by a human or a tool acting for one.
What the pattern does NOT do is resolve anything: it relocates the cost of a poison pill from every item behind it to an operational backlog with its own ownership question. Two guards keep it honest: the nack must be an explicit signal (a handler that hangs rather than errors needs timeout machinery to convert silence into a decision), and the route must be protected from outages — when the consumer is entirely down, stop delivering rather than dead-lettering healthy traffic, or the DLQ becomes a second copy of the incident. Boundary against Retryable Error Classification: that pattern decides whether an error may be retried; the dead letter queue is where the non-retryable verdicts (and the retry-exhausted) physically go.
When it applies
Tradeoffs
The same move, 1 ways
Every row is a production system that bet on this pattern — the note says how, in that system's own terms.
Problems this pattern answers
The walls where its breakdowns live — each opens the cross-company comparison.