Dead Letter Queue (DLQ, Warteschlange für unzustellbare Nachrichten) ist eine separate Warteschlange, in die ein Broker oder Consumer Nachrichten verschiebt, die wiederholt nicht verarbeitet werden konnten. Sie verhindert, dass fehlerhafte Nachrichten die Verarbeitung dauerhaft blockieren oder still verloren gehen – ein zentraler Baustein robuster Event-Driven Architecture und Message Queue-Systeme.

So funktioniert eine DLQ

Eine Nachricht gilt als Poison Message, wenn sie trotz wiederholter Versuche nicht erfolgreich verarbeitet werden kann – zum Beispiel wegen eines fehlerhaften Formats, fehlender Referenzdaten oder eines Programmfehlers. Nach einer konfigurierten Anzahl von Zustellversuchen (Retries) wird sie in die DLQ umgeleitet. Amazon SQS definiert dafür eine Redrive Policy mit dem Parameter maxReceiveCount (z. B. 5); RabbitMQ nutzt ein Dead Letter Exchange (DLX), an das die Hauptwarteschlange nicht verarbeitbare Nachrichten weiterreicht.

Warum eine DLQ wichtig ist

Ohne DLQ bleiben fehlerhafte Nachrichten entweder dauerhaft in der Warteschlange (Retry-Schleife, Blockade nachfolgender Nachrichten) oder werden verworfen – und damit gehen Geschäftsereignisse still verloren. Eine DLQ trennt die fehlerhafte Nachricht vom normalen Datenfluss, sodass die Verarbeitung weiterläuft und ein Operateur oder ein Alarmsystem die abgelegten Nachrichten gezielt untersuchen kann (Logs, Payload, Consumer-Fehler). Nach einer Korrektur lassen sich die Nachrichten zurückspielen (SQS: Redrive), ohne dass sie neu erzeugt werden müssen. Wichtig bleibt: Eine DLQ ist ein Werkzeug zur Fehlerisolierung, kein Ersatz für Überwachung – jede DLQ braucht Alarmierung und ein Bearbeitungsverfahren.

Verwandte Grundlagen: Message Broker, Event Stream, Stream Processing.