Data Consistency for Microservices

Data Consistency for Microservices

Bachelor Thesis, Master Thesis

Microservice architectures have become a popular solution for developing modern distributed systems ensuring proper modularization of the system functionalities. Yet, microservices bring their own set of challenges. Most noticeable, data consistency, when data span multiple services, becomes a primary issue. A common solution to this problem is to use the “Saga” pattern, introduced in 1987 for long-lived transactions. With this pattern, a transaction is broken down into a sequence of local transactions that communicate via asynchronous messaging. To ensure atomicity, such transactions can be compensated to achieve a complete rollback in case one fails. Compared to traditional ACID transactions, however, Sagas exhibit two main issues: i) they do not guarantee isolation across microservices and ii) they are hard to implement as not every action is compensable with an inverse action.

Considering the aforementioned challenges, the candidate will investigate the way the Saga pattern is applied to real-world microservices. This step will be accomplished by mining GitHub repositories. Next, the candidate will work on a solution to guarantee a higher level of isolation for Sagas.

If you are interested in the topic or have any further questions, please contact: (Nafise Eskandani)