Vai al contenuto

Dead-letter queue

Una dead-letter queue conserva messaggi accantonati per analizzarli e rielaborarli in modo controllato.

Noto anche comeDLQCoda dei messaggi non elaborabili
API e contratti dati

Una dead-letter queue (DLQ) è una coda separata per messaggi esclusi dall’elaborazione normale. Consente di esaminare i messaggi non elaborati e riprenderli in modo controllato. È la configurazione a stabilire quali vi arrivano; non tutti gli errori applicativi vi indirizzano automaticamente un messaggio.

Prevedere il recupero dei messaggi accantonati

In un sistema di integrazione fittizio, il messaggio E-81 contiene una versione di schema non supportata. Invece di essere ritentato all’infinito nel flusso normale, segue il percorso di errore configurato. Il team registra motivo dell’errore e identità del messaggio per mantenerne la tracciabilità. Dopo aver corretto i dati o adattato il consumer, può rielaborarlo deliberatamente evitando effetti duplicati.

In RabbitMQ, il Dead-Letter Exchange (DLX) è il punto di instradamento che inoltra questi messaggi alle code collegate. Non è la DLQ stessa. Le cause possono includere rifiuto senza reinserimento, scadenza del messaggio o limiti configurati. Vanno predisposti instradamento e collegamenti adeguati.

Servono anche monitoraggio, diritti di accesso, conservazione e una procedura di ripresa. La DLQ non equivale a un lavoro completato o a una riparazione automatica. Neppure l’inoltro garantisce l’assenza di perdite: il dead-lettering predefinito di RabbitMQ può perdere messaggi se la coda di destinazione non è disponibile.

Fonti