Een dead-letter queue (DLQ) is een wachtruimte waar berichten of taken belanden als ze niet verwerkt kunnen worden. In plaats van te verdwijnen of alles erachter te blokkeren, wordt het mislukte item opzijgezet, zodat de rest van het werk blijft doorlopen en je het probleem later kunt bekijken.

Denk aan een postkantoor. De meeste brieven worden bezorgd, maar een paar hebben een fout adres of geen postzegel. De postbode gooit die niet weg en laat ze de route niet stilleggen, ze gaan in een aparte bak om met de hand uit te zoeken. Een dead-letter queue is die bak voor software. Hij zit meestal achter een message queue en springt in zodra herhaallogica het een paar keer geprobeerd heeft en het opgeeft.

Die bak helpt alleen als je hem ook leegt. Een wachtrij die stilletjes volloopt met duizenden mislukte orders waar niemand naar kijkt, is erger dan geen wachtrij, want hij verbergt een probleem terwijl het veilig voelt. Het aantal in de dead-letter queue hoort dus op een dashboard met een alert, net zoals je een rookmelder in de gaten houdt in plaats van te wachten tot je rook ruikt.

Wat je met de wachtrij doet, is net zo belangrijk als dat je hem hebt. Goede opstellingen waarschuwen een persoon, houden het oorspronkelijke bericht intact en laten het opnieuw lopen zodra de oorzaak is opgelost. Zo wordt een stille fout een zichtbare die je kunt verhelpen.

Bij TopDevs bouwen we een dead-letter queue in de automatiseringen van een klant, zodat een record dat echt vastloopt veilig wacht op een mens in plaats van te verdwijnen zonder dat iemand het merkt.