Development of a methodology for the implementation of transactions in distributed systems with microservice architectura
Abstract
The paper describes the analysis of the problems of using microservice architecture in distributed systems. Emphasis is placed on flexibility in the choice of technologies, scalability and organization of teams working on given microservices, technical and domain problems of transaction implementation in comparison with a monolithic system. The main focus is on transactions, as they ensure atomicity, consistency, isolation, and persistence across multiple services. In the process of analyzing modern approaches and solutions for working with transactions in distributed systems, it was found that one of the effective solutions is the use of the Transactional Outbox pattern. Its implementation in the form of Spring starter is presented. The latter is added to the system, configured and facilitates the use of transactions and the publication of events that are part of a transaction in a microservice architecture. The developed methodology for implementing distributed transactions based on message queues, using the above-mentioned starter, is described in detail. The basic configurations and settings of message queues for the correct operation of transactions in distributed systems are defined
Problems in programming 2024; 1: 64-76
Keywords
Full Text:
PDF (Українська)References
Maarten van Steen, Andrew S. Tanenbaum. "A brief introduction to distributed systems." Web. 2016. https://www.distributed-systems.net/my-data/papers/2016.computing.pdf CrossRef
Fowler M. Microservices [Електронний ресурс] / M. Fowler, J. Lewis. – 2014. – Режим доступу до ресурсу: https://martinfowler.com/articles/microservices.html
Яшина О.М., Кравчук О.А. Дослідження мікросервісної архітектури, архітектурний стиль REST та їх сучасна реалізація на Java. Вісник ХНУ: технічні науки, Номер: №5, 2020, с. 106-114.
Trzaska, Mariusz. "Technical challenges of creating an IT system in microservices architectural style using cloud services" Web. 2022 https://users.pja.edu.pl/~mtrzaska/Files/PraceMagisterskie/220217-Grabowski.pdf
Newman S. Monolith To Microservices / Sam Newman., 2019. – 301 с. – (2).
Fowler, Martin. "How to break a Monolith into Microservices" Web. 2018 https://martinfowler.com/articles/break-monolith-into-microservices.html
Richardson C. Microservices Patterns With examples in Java / Chris Richardson., 2018. – 520 с.
Fowler, Martin "Two Phase Commit" Web. https://martinfowler.com/articles/patterns-of-distributed-systems/two-phase-commit.html
Transactional Outbox Pattern https://www.linkedin.com/pulse/transactional-outbox-pattern-distributed-pratik-pandey (дата звернення 08.07.23)
Chola, Abhinal "Understanding Write Ahead Logging: 4 Comprehensive Aspects" Web. https://hevodata.com/learn/write-ahead-logging/
Spring Blog. "Case Study: Change Data Capture (CDC) Analysis with CDC Debezium source and Analytics sink in Real-Time" Web.
https://spring.io/blog/2020/12/14/case-study-change-data-capture-cdc-analysis-with-cdc-debezium-source-and-analytics-sink-in-real-time
Debezium Documentation. Web. https://debezium.io/documentation/reference/stable/index.html
Hevodata. "3 Easy Steps to Decode CDC Using Debezium Spring Boot" Web. https://hevodata.com/learn/debezium-spring-boot/
Spring Boot Starters documentation. Web https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using.build-systems.starters
Rajabi M. How to Avoid Coupling in Microservices Design [Електронний ресурс] / Mariam Rajabi. – 2020. – URL: https://www.capitalone.com/tech/softwareengineering/how-to-avoid-loose-coupled-microservices/.
Walpita P. Coupling and Cohesion in Microservices [Електронний ресурс] / Priyal Walpita. – 2020. – URL: https://priyalwalpita.medium.com/coupling-and-cohesion-inmicroservices-235ed9203843.
Baeldung Blog "Implementing Retry in Kafka Consumer" Web. https://www.baeldung.com/spring-retry-kafka-consumer
Medium. "Dead Letter Queue (DLQ) in Kafka" Web. https://towardsdatascience.com/dead-letter-queue-dlq-in-kafka-29418e0ec6cf
Richardson, Chris. "Pattern: Idempotent Consumer" Web. https://microservices.io/patterns/communication-style/idempotent-consumer.html
DOI: https://doi.org/10.15407/pp2024.01.064
Refbacks
- There are currently no refbacks.