Capsule Informatiche di Lello De Luca
← Tutte le Capsule

Transactional Outbox

Dati e consistenzaApprofondimento

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

ADT - Architettura tecnica e pattern distribuiti

Capsule Informatiche · Materiale progettuale

Riepilogo architetture piattaforma enterprise sanitaria

Capsule Informatiche · Materiale progettuale