...
Saga Pattern 3 - Synchronous / Eventual / Orchestration
...
Pattern Description
This pattern re-introduces the orchestrator whose sole responsibility is to coordinate requests, responses, and error handling. The responsibility for managing transactions is delegated to the domain services. This frees up the orchestrator to issue compensating calls but without being bound within any active transactions.
The main benefit for this type of approach is eventual consistency which alleviates the coordination challenge related to error handling.
Pattern Characteristics | |
---|---|
Coupling | Introducing the orchestrator brings back high coupling, but removes atomic transactions which alleviates some of the complexities associated with managing workflows. |
Complexity | Easy to implement because of the synchronous/orchestrated approach, and the removal of atomic transactions. |
Responsiveness/Availability | Because the orchestrator is no longer tightly involved in the transaction boundary of the domain services, it allows it to better load balance. |
Scale/Elasticity | Because the transaction boundaries are restricted to the domain services it will be much easier for them to scale more independtly. |
Glossary
Term | Definition |
---|---|
Atomic | |
Bottlenecks | |
Elasticity | |
CDS | |
VRG | |
VDS | |
VRS | |
WMS | |
Sync |