messaging
Dead Letter Queue
Messages that fail 3 times are moved to a DLQ for manual inspection and retry
Queue0
Processed0
DLQ0
Fail Rate60%
Fail%
// main queue (0)
empty
// processed ✓ (0)
none yet
// dead letter queue ☠ (0)
empty
Max retries: 3Flow: enqueue → attempt → {success: done, fail < 3: re-queue, fail ≥ 3: DLQ}
// event log
No events yet.
// how it works
- Process message from main queue
- On failure: re-queue with incremented attempt count
- After 3 failures → move to DLQ
- DLQ allows manual inspection & retry
// trade-offs
- Prevents poison messages from blocking queue
- Preserves failed messages for debugging
- DLQ needs monitoring and alerting
- Retry delays slow overall throughput