Evaluation Criteria Catalog
In order to evaluate different technological approaches concerning the Saga pattern, some criteria have to be defined against which the evaluation can be performed. The following sections consider several areas of interest related to characteristics of microservices and the Saga pattern as well as some quality attributes of the ISO/IEC 25010 Quality Models1. For each area, the aspects that an evaluator should examine are explained and described. Some of the described criteria have been taken from the previous paper published by Dürr et al. [3]. The aim is to create a criteria catalog that can be used to analyze other technologies in this context.
Monitoring
Since a Saga can be a transaction that takes a long time to finish, investigating the current Saga state or tracing the sequence of various calls within the Saga helps to understand the application’s behaviour and performance. Tracing, monitoring and logging microservices also represents one of the challenges within a MSA [1, 6]. Therefore, the following criteria deal with the different possibilities the technologies offer concerning these areas. The used criteria originate from the evaluation done by Dürr et al. [3, p. 79 f.].
Runtime state
Listing the different ways the technology provides information about the current state of an ongoing Saga. An example would be a UI that visualizes the different transactions of a Saga and which one is currently being executed. Another option could be the logs of a service or information stored within a database.
Orchestrator metrics
Services often publish various metrics like the number of started Sagas or compensated ones. These metrics can then be used to configure alerts or draw conclusions about the system’s load and performance. This criterion describes the various metrics the technology provides and which service publishes them.
Tracing
Determining whether the technology allows activating distributed tracing easily, for example, by offering the integration of systems like Zipkin2 or OpenTracing3 rather than manually implementing it.
Logging
This criterion describes if and which service logs information about the Saga execution. In addition, information that is possible to retrieve from these logs can be mentioned. Analyzing logs can help with troubleshooting or determining the current Saga state.
References
-
https://iso25000.com/index.php/en/iso-25000-standards/iso-25010?start=0, last accessed 2021-07-06 ↩
-
https://zipkin.io/, last accessed 2021-07-09 ↩
-
https://opentracing.io/, last accessed 2021-06-06 ↩