Problem
Data consistency is a major issue in distributed transaction scenarios.
Cross-service data consistency requires a cross-service transaction management strategy : transactions must be atomic, consistent, isolated and durable (ACID).
If a transaction (step) fails, the pattern will execute compensating transactions that counteract the preceding transactions.
Solution
Orchestration is a way to coordinate sagas where a centralized controller tells the saga participants waht local transactions to execute.
Orchestrator executes saga requests, stores and interprets the states of each task, and handles failure recovery with compensating transactions.
Saga In Practice