Versions Compared

Key

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

...

Saga Pattern 2 - Synchronous / Atomic / Choreography

...

Pattern Description

In this particular saga pattern implementation (choreography) there is no central orchestrator to conduct the workflow, rather, the initial request is initiated by what is called a front controller, in this case it is the VDS service. After successfully completing their work, the services will begin invoking the other service(s) that come after them, all the way until the last service has been reached, which will then return the result. If however, an error was to occur, then each service must have built-in compensating logic, to send requests back along the chain to the front controller.

Pattern Characteristics

Coupling

Since this pattern uses a choreographed approach but still uses synchronous communication, the coupling is reduced slight. It is slightly reduced because of the transactional requirement which must be distributed across the different services.

Complexity

This pattern exhibits high level of complexity because of the built in compensating logic in each of the services involved in the workflow. This will most likely continue to increase as new services are added or removed.

Responsiveness/Availability

Slightly increased because of the lack of orchestration, but would be diminished quite rapidly because of the built in compensating error correction logic.

Scale/Elasticity

Scalability for this pattern is slightly increased because of the lack of bottlenecks as a result of orchestration. However this pattern’s implementation is synchronous and exhibits tight coupling, and if deployed in an environment which has high error rates, then the scalability is greatly diminished.

Glossary

Term

Definition

Atomic

Bottlenecks

Elasticity

CDS

VRG

VDS

VRS

WMS

Sync