the platform as the feature request. The representing
successful run has been completed in 3 min. 56 sec.
LRA Service. This quickstart was for the perfor-
mance test adjusted to be run directly in the Docker
platform to simulate a similar environment for all ex-
amples. The test presented that the LRA coordinator
orchestration does not influence the processing per-
formance. The scenario 1 has been finished with ex-
ceptional overhead only 4 seconds and total time 1
minute and 10 seconds while the scenario 2 finished in
8 minutes and 58 seconds with just 22 seconds spent
on the additional saga processing. Both scenarios suc-
cessfully completed all order requests.
Summary. In general, both Eventuate Tram and LRA
performed in this test better than Axon or Eventu-
ate ES because the main focus of these frameworks
is placed on saga development. However, Axon and
Eventuate ES still present a simplified integration of
the saga pattern in CQRS based applications.
4 CONCLUSIONS
This paper covered transactions concepts that can be
utilized for the transaction commit problem in modern
software architectures. It covered conventional trans-
actional approaches utilizing two-phase commit pro-
tocol and application to the distributed environment of
microservices. The saga pattern (Garcia-Molina and
Salem, 1987) has been introduced as an alternative
approach to traditional transaction processing.
Development support of the saga pattern for pro-
duction environments was explored through the in-
vestigation of saga processing in four Java frame-
works – Axon, Eventuate ES, Eventuate Tram and
Narayana LRA. All of the frameworks were examined
in terms of the implementation of an order process-
ing microservices application utilizing the saga exe-
cution. Both Axon and Eventuate ES provide sim-
plified definitions of the saga pattern, however, at the
expense of the manual saga execution tracking and
the mandatory CQRS pattern application. Conversely,
Eventuate Tram and LRA are frameworks specifically
designed for saga executions. Both frameworks pro-
vide easy integrations and transparent executions of
sagas in enterprise Java applications. These quickstart
applications were also compared from a performance
perspective through a created test that examined saga
processing under large applied load. These perfor-
mance experiments resulted into several suggestions
of possible improvement points in the saga process-
ing of individual frameworks. In conclusion, the saga
pattern (Garcia-Molina and Salem, 1987) provides a
sophisticated alternative to conventional transaction
processing by means of its non-blocking nature – use-
ful in modern microservices applications.
ACKNOWLEDGEMENTS
The research was supported from ERDF/ESF ”Cy-
berSecurity, CyberCrime and Critical Informa-
tion Infrastructures Center of Excellence” (No.
CZ.02.1.01/0.0/0.0/16 019/0000822).
REFERENCES
Bon
´
er, J., Farley, D., Kuhn, R., and Thompson, M. (2018).
Reactive manifesto. https://www.reactivemanifesto.
org.
Fowler, M. (2018). Cqrs. https://martinfowler.com/bliki/
CQRS.html.
Garcia-Molina, H. and Salem, K. (1987). Sagas. ACM SIG-
MOD Record, 16(3):249–259.
Gilbert, S. and Lynch, N. (2012). Perspectives on the CAP
theorem. Computer, 45(2):30–36.
Gray, J. (1981). The transaction concept: Virtues and lim-
itations. In Proceedings of the Seventh Int. Confer-
ence on Very Large Data Bases - Volume 7, VLDB
’81, pages 144–154. VLDB Endowment.
Haerder, T. and Reuter, A. (1983). Principles of transaction-
oriented database recovery. ACM Computing Surveys,
15(4):287–317.
Helland, P. (2007). Life beyond distributed transactions: an
apostate’s opinion. In CIDR, pages 132–141.
Helland, P. and Campbell, D. (2009). Building on quick-
sand. CoRR, abs/0909.1788.
Little, M., Maron, J., and Pavlik, G. (2004). Java transac-
tion processing. Prentice Hall.
Nadareishvili, I., Mitra, R., McLarty, M., and Amundsen,
M. (2016). Microservice architecture: aligning prin-
ciples, practices, and culture. ” O’Reilly Media, Inc.”.
Sharma, U. R. (2017). Practical Microservices. Packt Pub-
lishing Ltd., 1 edition.
Stonebraker, M. and Cattell, R. (2011). 10 rules for scalable
performance in ’simple operation’ datastores. Com-
mun. ACM, 54(6):72–80.
ˇ
Stefanko, M. (2017). Saga implementations com-
parison. http://jbossts.blogspot.cz/2017/12/saga-
implementations-comparison.html.
Vogels, W. (2009). Eventually consistent. Communications
of the ACM, 52(1):40.
ICSOFT 2019 - 14th International Conference on Software Technologies
490