# Dead-Letter Queue

> A design pattern that moves a message which keeps failing into a separate queue, where it can be inspected and reprocessed.

Record: `architecture:dead-letter-queue`
Kind: pattern
Layer: [Execution Core](https://banes-lab.com/records/layer/execution-core.md)
Severity: contextual
Scope: service, messaging, resilience
Canonical: https://banes-lab.com/ontology#architecture-dead-letter-queue

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [Append-Only Log](https://banes-lab.com/records/architecture/append-only-log.md) and before [Idempotent Consumer](https://banes-lab.com/records/architecture/idempotent-consumer.md).

## Repair

- Refactored by: Route Failures to a Dead-Letter Queue
- Detected by: retry storms on a single poison message
- Violated by: unprocessable messages redelivered forever
- Measured by: redelivery count per failed message
- Enforced by: messaging design review

## Requires

- [Message Queue](https://banes-lab.com/records/architecture/message-queue.md)

## Reinforces

- [Fault Isolation](https://banes-lab.com/records/lexicon/fault-isolation.md)
- [Observability](https://banes-lab.com/records/architecture/observability.md)

## Enables

- [Poison-Message Quarantine](https://banes-lab.com/records/lexicon/poison-message-quarantine.md)
- [Reprocessing After Fix](https://banes-lab.com/records/lexicon/reprocessing-after-fix.md)

## Conflicts with

- [Infinite Redelivery Loop](https://banes-lab.com/records/lexicon/infinite-redelivery-loop.md)

## In tension with

- [Operational Overhead](https://banes-lab.com/records/lexicon/operational-overhead.md)

## Tensions

- [Dead-Letter Queue / Operational Overhead](https://banes-lab.com/records/tension/dead-letter-queue-operational-overhead.md)

## Severity

- [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)

## Category

- [Event / Messaging / Asynchronous Architecture](https://banes-lab.com/records/architecture-category/event-messaging-asynchronous-architecture.md)

## Linked from

- [Event / Messaging / Asynchronous Architecture](https://banes-lab.com/ontology/principles/architecture-category-event-messaging-asynchronous-architecture.md)
- [Observability / Auditability / Traceability](https://banes-lab.com/ontology/principles/architecture-category-observability-auditability-traceability.md)
- [Event Messaging Async](https://banes-lab.com/ontology/lexicon/lexicon-category-event-messaging-async.md)
- [Quality Attributes](https://banes-lab.com/ontology/lexicon/lexicon-category-quality-attributes.md)
- [Severity levels](https://banes-lab.com/ontology/schema/the-vocabulary-severity.md)
- [The resolutions](https://banes-lab.com/ontology/schema/the-resolutions.md)
