Versions Compared

Key

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

...

Pattern Characteristics

Coupling

Since this pattern uses a choreographed approach but still uses synchronous communication, the coupling is reduced slightslightly. 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.

...

Saga Pattern Implenation 4 - Synchronous / Eventual / Choreography

...

Pattern Description

Similar to the previous saga pattern implementation (Pattern 3), the difference here, is there is no central orchestrator managing the workflow of the participating services. However, it does retain the service scoped transaction boundary and eventual consistency approach.

...

One of the benefits of this approach is the ability for each service to implement the Chain of Responsibility design pattern, where each service in this approach is responsible for its own transaction. Since A downside however is, since the transaction boundary is encapsulating the service itself, the error correcting logic must be placed within the participating service domain, which will add in complexity.

Pattern Characteristics

Coupling

Reduced due to the lack of an orchestrator. Still exists because of the synchronous communication that exists between the services.

Complexity

Reduced because of the lack of compounded transaction boundaries.

Responsiveness/Availability

Fast for one-way communication, but will experience issues in an environment where high error rates exist. This is because each service must recover after an error and bring the state back into a normal zone (Eventual).

Scale/Elasticity

High scaling and elasticity options with this implementation and as we will see in the upcoming implementation, can be improved with asynchronicity.

Saga Pattern Implenation 5 - Asynchronous / Atomic / Orchestration

...

Glossary

Term

Definition

Atomic

Bottlenecks

Elasticity

Eventual Consistancy

CDS

Client Detail Service [Microservice]

VRG

Vessel Registry Gateway [Microservice]

VDS

Vessel Detail Service [Microservice]

VRS

Vessel Registry Service [Microservice]

WMS

Workload Management Service [Microservice]

Sync

Synchronous communication

Async

Asynchronous communication

Pipes and Filter Architecture Style

A workflow with a one-way series of steps.
https://docs.microsoft.com/en-us/azure/architecture/patterns/pipes-and-filters