Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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