AX/GLOSSARY
InżynieriaZaktualizowano: 15 kwi 2026

Dead letter queue (DLQ)

Kolejka dla wiadomości które wielokrotnie nie powiodły się w processing. Nie tracimy danych — failed jobs idą do DLQ do manual review lub later replay.

Dead letter queue (DLQ) to kolejka dla wiadomości / jobs które wielokrotnie nie powiodły się w processing. Zamiast tracić failed items po N retry — lądują w DLQ do manualnej inspekcji.

Klasyczny pattern:

  1. Job lands w main queue
  2. Worker próbuje processing
  3. Fail? Retry z exponential backoff (1s, 2s, 4s, 8s...)
  4. Po 5-10 failed attempts → przesuń do DLQ
  5. DLQ ma alert (Slack, email) i UI do inspekcji
  6. Engineer reviewuje failed jobs, fixuje root cause, replay z DLQ → main queue

Co tam ląduje w praktyce:

  • Permanent failures (404, malformed data, banned account)
  • Schema drift (target API zmienił format)
  • Network outages dłuższe niż retry budget
  • Software bugs które wyszły dopiero w produkcji

Bez DLQ: failed jobs są tracone milcząco. Customer dzwoni "gdzie mój raport?" — i okazuje się że pipeline failuje od 3 dni a nikt nie zauważył. Z DLQ: wszystko jest widoczne, recoverable, audytowalne.

Implementacja: RabbitMQ ma built-in DLX (Dead Letter Exchange). AWS SQS ma redrive policy. Redis Streams + manual logic. PostgreSQL z status column. Patrz nasza zasada engineeringu "Dead-letter everything".