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