Outbox Pattern

Architecture 🔴 Senior

Definition

Ecrit les evenements dans une table outbox dans la meme transaction que les donnees metier. Un processus separe lit et publie ces evenements.

Analogie

La boite 'courrier depart' au bureau : tu deposes ta lettre, et le facteur passe la relever plus tard.

Exemple de code

await db.transaction(async (tx) => {
  await tx.insert('orders', order);
  await tx.insert('outbox', {
    event: 'OrderCreated', payload: order
  });
});

Cas d'usage

Garantir la coherence entre l'etat local et les evenements publies en microservices.

Anti-pattern

Publier l'evenement apres le commit — si le publish echoue, l'etat est incoherent.

Termes lies

#architecture#interview#microservices#distributed