SAGA-PATTERN
Pattern de transaction longue distribuée décomposée en sous-transactions locales chacune compensable, alternative aux 2PC pour orchestrer les flux EDI multi-systèmes.
Définition
Saga vient du papier 'Sagas' de Garcia-Molina et Salem (1987). Chaque étape réussie publie un événement déclenchant la suivante ; en cas d'échec, des compensations annulent les étapes précédentes. Deux variantes : orchestration (central coordinator) vs. choreography (events bus).
Origine
Papier académique original Princeton 1987. Réintroduit dans le monde microservices par Chris Richardson (Eventuate, microservices.io) à partir de 2014. Largement adopté depuis 2018.
Usage
Une commande EDI déclenche : (1) réserver stock, (2) débiter compte, (3) émettre facture. Si débit échoue, compensations : (-1) libérer stock. Chaque étape est portée par un service ; le Saga orchestrator (par exemple AWS Step Functions ou Temporal) ou choreography Kafka coordonne.
Termes liés
- Choreography vs orchestration — variantes.
- Event sourcing — fondation commune.
- Outbox pattern — pattern publisher.
- ACID vs BASE — axe consistance.