Dead letter queues (DLQ) store messages that failed processing after maximum retries.
Purpose:
- Isolate problematic messages
- Prevent blocking the main queue
- Enable debugging and manual intervention
When to DLQ:
- Message format invalid (schema mismatch)
- Business rule violation
- Dependency permanently unavailable
When to retry:
- Transient failures (network timeout, service restart)
- Rate limiting
Monitor DLQ depth. Growing DLQ indicates systematic issues.