...
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. |
...
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. |