[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"glossary-dead-letter-queue::en":3,"gloss-cluster-dead-letter-queue::en":26,"gloss-next-dead-letter-queue::en":9},{"slug":4,"category":5,"name":6,"definition":7,"meta_desc":8,"faq":9,"schema_markup":9,"related":10},"dead-letter-queue","data-infra","Dead-Letter Queue (DLQ)","A dead-letter queue is a separate holding queue where messages go when they can't be processed successfully — after repeated failures, a malformed payload, or exceeding a retry limit. Instead of blocking the main queue or being lost forever, the problem message is set aside so the rest of the traffic keeps flowing and you can inspect the failure later.\n\nThe problem it solves is the \"poison message\": one event that always fails and, without a DLQ, gets retried endlessly, stalling the queue behind it. A DLQ breaks that loop — retry a few times, then divert to the dead-letter queue and move on.\n\nFor SaaS builders running background jobs, webhooks, or event pipelines (SQS, RabbitMQ, Kafka, etc.), a DLQ is essential operational hygiene. Practical note: a DLQ is only useful if someone watches it. Alert when messages land there, capture enough context to debug (original payload, error, retry count), and build a way to reprocess or discard them once fixed. An unmonitored DLQ is just a place where data quietly dies.","A dead-letter queue holds messages that failed processing after their retries, so one bad payload can't block the main queue or vanish without a trace.",null,[11,14,17,20,23],{"slug":12,"name":13},"exponential-backoff","API Rate Limiting Strategy (Backoff)",{"slug":15,"name":16},"idempotency","Idempotency",{"slug":18,"name":19},"message-queue","Message Queue",{"slug":21,"name":22},"schema-registry","Schema Registry",{"slug":24,"name":25},"streaming-data-processing","Streaming Data Processing",[27,31,34,37,40,44,47,50,53,56,60,63],{"slug":28,"category":5,"name":29,"updated_at":30},"acid","ACID","2026-08-24T02:46:37+00:00",{"slug":32,"category":5,"name":33,"updated_at":30},"ann-search","ANN Search",{"slug":35,"category":5,"name":36,"updated_at":30},"backpressure","Backpressure",{"slug":38,"category":5,"name":39,"updated_at":30},"batch-processing","Batch Processing",{"slug":41,"category":5,"name":42,"updated_at":43},"bm25","BM25","2026-08-24T02:46:38+00:00",{"slug":45,"category":5,"name":46,"updated_at":30},"cache","Cache",{"slug":48,"category":5,"name":49,"updated_at":30},"cap-theorem","CAP Theorem",{"slug":51,"category":5,"name":52,"updated_at":30},"change-data-capture","Change Data Capture (CDC)",{"slug":54,"category":5,"name":55,"updated_at":30},"chroma","Chroma",{"slug":57,"category":5,"name":58,"updated_at":59},"chunk-overlap","Chunk Overlap","2026-08-24T03:30:02+00:00",{"slug":61,"category":5,"name":62,"updated_at":30},"columnar-storage","Columnar Storage",{"slug":64,"category":5,"name":65,"updated_at":30},"connection-pooling","Connection Pooling"]