A Saga Pattern Microservice Reference Architecture for an Elastic SLO Violation Analysis
Status:: π©
Links::Β Data Consistency in Distributed Systems
Metadata
Authors:: Speth, Sandro; Sties, Sarah; Becker, Steffen
Title:: A Saga Pattern Microservice Reference Architecture for an Elastic SLO Violation Analysis
Date:: 2022
URL:: https://ieeexplore.ieee.org/document/9779811/
DOI:: 10.1109/ICSA-C54293.2022.00029
Speth, S., Sties, S., & Becker, S. (2022). A Saga Pattern Microservice Reference Architecture for an Elastic SLO Violation Analysis. 2022 IEEE 19th International Conference on Software Architecture Companion (ICSA-C), 116β119. https://doi.org/10.1109/ICSA-C54293.2022.00029
Related:: @VonKistowski.etal.2018.TeaStore
Reference architectures are becoming increasingly popular for industry and researchers as benchmark solutions to test their novel concepts and tools. While many reference architectures exist in the microservice domain, they are often not built on state-of-the-art technologies. Furthermore, many existing reference architectures do not use lightweight and asynchronous communications, such as messaging, do not have out-of-the-box self-adaptation and do not consider state-of-the-art microservice patterns. Therefore, this paper proposes a self-adaptive microservice reference architecture that implements the microservice saga pattern. The architecture is implemented in Java Spring Boot and uses the Eventuate Tram framework for the saga orchestration. Moreover, the architecture is instrumented to export performance metrics for monitoring and data for system-wide tracing to check for correct execution of the system and its adaptations. The objective of this reference architecture is to provide a benchmark for explaining self-adaptation and propagation of service-level objective (SLOs) violations across an architecture with complex patterns. In addition to the architecture, we provide defined SLOs and load profiles to stress the architecture.
Notes & Annotations
Color-coded highlighting system used for annotations
π Annotations (imported on 2024-05-15#17:12:04)
Because of the TeaStoreβs lack of a modern microservice framework, e.g., Java Spring, the synchronous communication, and its central persistence , we decided against extending it. A significant drawback of the central persistence service is that the serviceβs data is not distributed. Thus, there is no need for the saga pattern.
Moreover, for implementing the saga pattern, the T2-Project utilises the Eventuate Tram framework4. Compared to other saga frameworks, Eventuate Tram has the least effort to use and the best execution [14]. As a standalone microservice framework, it is lacking. However, in combination with, e.g., Spring Boot, Eventuate Tram works well [13].