Transactional Outbox
Salvare l'evento in una tabella outbox nella stessa transazione del dato di business e pubblicarlo successivamente con un relay affidabile.
Il problema
Scrivere nel database e pubblicare un evento sul broker sono due operazioni separate: può riuscirne una e fallire l'altra.
Il pattern
Salvare l'evento in una tabella outbox nella stessa transazione del dato di business e pubblicarlo successivamente con un relay affidabile.
Come funziona
La transazione locale garantisce che stato e intent di pubblicazione siano atomici. Il publisher ritenta e marca l'evento inviato; i consumer devono comunque essere idempotenti.
Esempio sanitario
Benefici
- Evita dual write inconsistente
- Retry affidabile
- Compatibile con transazioni locali
Trade-off
- Outbox da pulire e monitorare
- Possibili duplicati in pubblicazione
- Latenza asincrona
Quando usarlo
Quando una modifica DB deve produrre in modo affidabile un evento.
Quando evitarlo
Quando non esiste alcuna pubblicazione esterna o il broker partecipa realmente alla stessa transazione.
Pattern correlati
RIFERIMENTI
Fonti e riferimenti
Capsule Informatiche · Materiale progettuale
Capsule Informatiche · Materiale progettuale
