Saga

Architecture 🔴 Senior

Definition

Gere les transactions distribuees via une sequence d'etapes locales avec des actions compensatoires en cas d'echec. Alternative a 2PC.

Analogie

Organiser un voyage : reserver vol, hotel, voiture. Si l'hotel est indisponible, tu annules le vol deja reserve.

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 distribuees 2PC qui verrouillent les ressources trop longtemps.

Termes lies

#architecture#interview#microservices#distributed