Outbox Pattern

Architecture 🔴 Senior

Définition

Écrit les evenements dans une table outbox dans la même transaction que les données métier. Un processus sépare lit et publie ces evenements.

Analogie

La boite 'courrier départ' 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 cohérence entre l'état local et les evenements publies en microservices.

Anti-pattern

Publier l'evenement après le commit — si le publish échoué, l'état est incohérent.

Termes liés

#architecture#interview#microservices#distributed

← → au clavier pour passer d'une fiche à l'autre