Saga

Architecture 🔴 Senior

Définition

Gère les transactions distribuées via une séquence d'étapes locales avec des actions compensatoires en cas d'échec. Alternative a 2PC.

Analogie

Organiser un voyage : réserver vol, hôtel, voiture. Si l'hôtel est indisponible, tu annules le vol déjà réservé.

Exemple de code

const saga = [
  { exec: bookFlight, comp: cancelFlight },
  { exec: bookHotel,  comp: cancelHotel },
];
// Execute chaque etape; en cas d'echec, compense en ordre inverse

Cas d'usage

Transactions multi-services dans les microservices (commande, paiement, livraison).

Anti-pattern

Transactions distribuées 2PC qui verrouillent les ressources trop longtemps.

Termes liés

#architecture#interview#microservices#distributed

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