Il messaging nell’ambito dello sviluppo di applicazioni è un aspetto essenziale perchè relativo ai messaggi che servizi, microservizi e componenti applicative si scambiano per inviarsi informazioni e compiere azioni.
Oggi il concetto di messaging è stato esteso e reso scalabile grazie a servizi come Pub/Sub trasformandolo in una vera e propria data pipeline dove servizi e applicazioni reagiscono ad eventi che hanno la forma di messaggi inseriti all’interno di code chiamate topic.
In pratica servizi come Pub/Sub gestiscono code(queue) di messaggi che vengono categorizzati attraverso degli argomenti(topic) ai quali le applicazioni possono registrarsi per essere in ascolto di nuovi messaggi oppure possono inviare a loro volta messaggi che vengono ascoltati da altre applicazioni. Le applicazioni quindi reagiscono ai nuovi messaggi inviati ai topic cui sono registrate compiendo azioni di qualsiasi tipologia( dalla semplice notifica all’aggiornamento push di un controller IoT).
Contattaci subito e senza impegno per integrare sistemi come Pub/Sub nei tuoi progetti.
Dead letter queue ed il ciclo di vita dei messaggi
Quando il software è in produzione non sempre va tutto bene e potrebbe accadere che il software generi errori o che determinate azioni non corrispondano ai limiti che abbiamo definito ( per es. in termini di lunghezza, di threshold, di dimensioni, ecc…).
Il compito principale di una dead letter queue è proprio quello di gestire tutti questi messaggi di errore e/o che non trovano per qualsiasi motivo un’esecuzione. Attraverso una dead letter queue puoi isolare questi messaggi al fine di determinare il perchè ciò accada. Inoltre una dead letter queue ti permette di:
- configurare un sistema di allarme da attivarsi quando un messaggio faccia ingresso in questa speciale coda;
- esaminare i log per riconoscere le eccezioni che hanno generato questi messaggi;
- analizzare il contenuto dei messaggi nella dead letter queue per diagnosticare problemi del software e/o dell’hardware;
- determinare se il tuo software funziona correttamente.
Use case della dead letter queue in Google Cloud
Ci sono numerosi servizi e software che implementano nativamente la dead letter queue, per es. Amazon Simple Queue Service, RabbitMQ, WebSphereMQ e molti altri. Di seguito definiremo un caso d’uso attraverso Google Cloud:
- Gli errori/messaggi possono essere inviati ad uno specifico topic di PubSub;
- Successivamente gli errori/messaggi possono essere inviati a BigQuery al fine di essere analizzati utilizzando una dashoboard;
- Infine gli errori/messaggi possono essere archiviati su Cloud Storage per futuri riutilizzi.
Per un’implementazione più completa( con Apache Beam, Datastudio, Cloud Logging e Dataflow) ti consigliamo la lettura dell’articolo “Dead letter queue for errors with Beam, Asgarde, Dataflow and alerting in real time“.
I casi d’uso possono essere più o meno complessi in base alla complessità stessa dell’applicazione. Prescindendo da questo, implementare una dead letter queue è un modo efficiente, efficace, pulito e moderno per gestire eccezioni ed errori che ti permette anche di mettere in campo processi di miglioramento continuo del tuo software.
Glue Labs e la dead letter queue
Ti supportiamo nell’implementazione di soluzioni tecnologiche che rendono migliori le tue applicazioni. Siamo Google Cloud Partner e grazie all’esperienza maturata in tantissimi settori, con numerosi Clienti e con un solido gruppo aziendale ti forniamo soluzioni per il building ed il delivery di software con garanzia 12 mesi da qualsiasi bug. Contattaci subito e senza impegno per maggiori informazioni.