Aller au contenu

DLQ : Dead Letter Queue

Infrastructure

DLQ = Dead Letter Queue : « file d'attente de lettres mortes », par analogie avec le bureau postal où atterrissent les courriers non distribuables. Une DLQ est une file d’attente qui reçoit les messages qu’un système n’arrive pas à traiter après plusieurs tentatives. Elle évite qu’un message bloqué fasse caler toute la chaîne.

Fonctionnement : Un message échoue, est retenté, puis déplacé vers la DLQ après un nombre ou un délai défini. Il reste disponible pour analyse, correction ou retraitement.

Déclenchement : Les causes classiques sont un format invalide, une donnée absente, un service indisponible ou un traitement trop lent. La règle de bascule dépend du système de messagerie.

Exploitation : Surveiller le volume de la DLQ permet de repérer les incidents et les régressions. Un retraitement contrôlé peut relancer les messages corrigés, sans transformer la production en manège à erreurs.

Pièges : Une DLQ n’est pas une poubelle : sa conservation, ses droits d’accès et sa durée de rétention doivent être définis. Sans alerte ni procédure, les messages y prennent simplement la poussière.

Ce qui arrive si on s'en passe

Une DLQ concentre précisément les messages anormaux : charges malformées, tentatives d'injection, entrées hors schéma. Elle mérite donc le même traitement qu'une zone sensible. Au niveau du contrôle d'accès, restreindre la lecture et le rejeu de la DLQ à des identités distinctes de celles du flux nominal, et chiffrer le contenu au repos, car les messages en échec conservent souvent des données personnelles ou des secrets. Au niveau de la détection, instrumenter le taux d'arrivée dans la DLQ : une croissance brutale signale soit une régression applicative, soit une campagne de messages hostiles. Au niveau de la réponse, définir une rétention bornée, une procédure de purge et un rejeu qui repasse par la validation d'entrée complète, jamais en contournant les contrôles du chemin normal.

Comment le mettre en place

Pour observer la rupture, monter un labo minimal : un broker local (une file principale, une DLQ attachée), un producteur et un consommateur qui lève une exception sur un message malformé. Fixer d'abord le nombre de tentatives à l'infini et publier ce message : la file se bloque, les messages suivants s'accumulent, la latence explose. Rattacher ensuite une DLQ avec un maximum de trois tentatives et rejouer le scénario : le message fautif est écarté, le flux repart. Vérifier aussi le cas inverse en dimensionnant la DLQ sans purge ni alerte, puis en y déversant quelques milliers de messages : la file de rebut sature à son tour et devient un second point de blocage silencieux.

Explication de la marmotte

Imagine un centre de tri avec des colis qui doivent suivre une chaîne précise. Si un colis est abîmé ou impossible à lire, le remettre sans cesse sur le tapis roulant bloque tout le monde. On le place alors dans une zone à part, appelée boîte des colis problématiques. Cette zone permet de regarder ce qui s’est passé, de réparer l’étiquette ou le contenu, puis de remettre le colis dans le circuit. Elle évite surtout qu’un seul colis fasse attendre toute la file.

Où ce terme est utilisé

← Tout le glossaire