Key points are not available for this paper at this time.
The emergence of microservice architecture has revolutionized software development practices by decentralizing components, facilitating scalability, and enabling agility in system design and deployment. There are some benefits of incorporating microservices instead of a single server, however, distributed components introduce extra constraints and complexities in maintaining data consistency as well. As microservices interact independently, coordinating data updates across multiple services becomes challenging, particularly in scenarios where transactional integrity is required. Distributed transactions are one of the solutions for ensuring data consistency across services. Regardless of effectiveness distributed transactions entail different trade-offs and performance implications. Those trade-offs are not always justified. This study highlights the need for a nuanced understanding of distributed transactions in microservices by revisiting challenges in managing distributed transactions within data storage systems. It also represents existing solutions to the different distributed transaction methods. In this paper, through experiments comparing microservices and monolithic systems, the impact of distributed transactions on system performance is evaluated, giving intuition about consequences when a single data source transaction is migrated to the distributed environment. This research also contributes to enhancing understanding and decision-making regarding the utilization of distributed transactions in a microservices architecture. Ultimately, this paper presents an optimized decision-framework for the application of distributed transactions in microservices architecture, aiming to simplify and expedite processes of software architecture for software engineers, solution architects, and developers.
Bashtovyi et al. (Mon,) studied this question.
Synapse has enriched 5 closely related papers on similar clinical questions. Consider them for comparative context: