Saga pattern technologies: a criteria-based evaluation

Status:: 🟨
Links:: Saga Pattern

Metadata

Authors:: Dürr, Karolin; Lichtenthäler, Robin; Wirtz, Guido
Title:: Saga pattern technologies: a criteria-based evaluation
Date:: 2022
Publisher:: SCITEPRESS - Science and Technology Publications
URL:: https://www.scitepress.org/DigitalLibrary/Link.aspx?doi=10.5220/0010999400003200
DOI:: 10.5220/0010999400003200

Notes & Annotations

Color-coded highlighting system used for annotations

📑 Annotations (imported on 2024-01-25#10:29:09)

durr.etal.2022.sagapatterntechnologies (pg. 1)

Nevertheless, the Saga pattern involves complexity, because such independent local transactions need to be coordinated and compensation must be possible to take into account different failure scenarios. Therefore, framework support can be helpful and suitable technologies have emerged.

durr.etal.2022.sagapatterntechnologies (pg. 1)

This work investigates different existing solutions by comparing their capabilities based on a well–defined criteria catalog. We acknowledge that the Saga pattern is not suitable for every use case, but this work does not provide an evaluation of when it fits and when it does not. Instead, we make the assumption that the Saga pattern has already been identified as suitable for a use case at hand and a technological solution for supporting the implementation needs to be chosen.

durr.etal.2022.sagapatterntechnologies (pg. 3)

Some previous studies have also assessed existing technologies with regards to the Saga pattern. The study by (Štefanko et al., 2019) analyzed four different Java–based application frameworks: Axon, Eventuate Event Sourcing and, like us, Eventuate Tram and MicroProfile Long–Running Actions (LRA), but based on the Narayana implementation. Their evaluation focused on assessing the frameworks’ support for the Saga pattern, its implementation complexity, and a performance analysis investigating the system’s behavior under large load (Štefanko et al., 2019). However, they do not specify their used quality criteria in detail.

Štefanko, M., Chaloupka, O., and Rossi, B. (2019). The Saga Pattern in a Reactive Microservices Environment. In Proceedings of the 14th International Conference on Software Technologies (ICSOFT), pages 483–490. SciTePress.

📑 Annotations (imported on 2024-01-25#10:37:55)

durr.etal.2022.sagapatterntechnologies (pg. 1)

Using distributed transactions, for example with the 2–Phase Commit (2PC) protocol, would be a classical approach (Al-Houmailya and Samaras, 2009; Newman, 2019) in this regard. But with 2PC, the overall availability and scalability of a system is affected (Newman, 2015; Richardson, 2019; Helland, 2016), due to the strict locking requirements (Thomson et al., 2012) combined with the comparatively slow and unreliable network–based communication.

durr.etal.2022.sagapatterntechnologies (pg. 1)

The Saga pattern is therefore mentioned frequently (Richardson, 2019; Newman, 2019; Štefanko et al., 2019; Garcia-Molina and Salem, 1987) as a solution. It divides a transaction into multiple local transactions so that locks for included resources do not have to be held until full completion.