BA-Saga Pattern
The implementation for the paper "An Evaluation of Saga Pattern Implementation Technologies" of the 13th ZEUS Workshop can be found in the following release An Evaluation of Saga Pattern Implementation Technologies.
This repository includes four implementations that realize an example travel application using orchestrated Sagas. Implementation
- using the Eventuate Tram and the Eventuate Tram Sagas framework
- using Netflix Conductor
- using Camunda
- using MicroProfile LRA
The example travel application consists of three backend services: TravelService, HotelService and FlightService. For simplicity reasons, only the workflow for booking a trip has been implemented.
Saga Pattern Realization
Each directory contains several realizations using the respective technology: A basic implementation(*) for the mentioned trip booking scenario and up to four further implementations that extend the basic one:
The travel application contains the workflow for booking a trip. | |
*_Expandability-Evaluation | A CustomerService extends the travel application to examine how easily a new service can be included. |
*_FailurePerf-Evaluation | The application includes additional sections that provoke different failure scenarios given a certain input. |
*_ParallelExec-Evaluation | If possible, some transactions within the BookTripSaga are executed in parallel. The same applies for some compensating transactions. |
*_Testability-Evaluation | The project includes automatic tests for some Saga related parts of the implementation. |
For more information about the projects and their setups see the respective sections in this documentation:
- Camunda Implementation
- Eventuate Tram Implementation
- MicroProfile LRA Implementation
- Netflic Conductor Implementation
Evaluation Criteria Catalog
This section includes a detailed description of the criteria catalog that was used for the evaluation of the individual technologies and can be found here: Criteria Catalog.
Evaluation Summary
A summarization of the evaluation results for the individual technologies can be found here: Evaluation Summary.