Allacher, A. (2023). Unified framework for robust microservice communication [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2023.113240
E194 - Institut für Information Systems Engineering
-
Date (published):
2023
-
Number of Pages:
79
-
Keywords:
microservice; robustness; code generation; domain specific language
en
Abstract:
Microservices architectures have become a prevalent approach in software development, offering scalability, loose coupling, and maintainability. This approach allows us to build systems systems as sets of small, independently deployable services that communicate through lightweight mechanisms. However, the distributed nature of microservices presents challenges, particularly in communication. Traditional synchronous communication, such as REST, can lead to temporal coupling and cascading failures. Asynchronous communication, on the other hand, presents its own set of challenges, including the need for message brokers and a different way of thinking about interactions. This thesis introduces a domain-specific language (DSL) that defines microservice communication, aiming to bridge the gap between these two communication paradigms while focusing on robustness. By leveraging engineering research methodology, we identified essential aspects of mi- croservice communication and integrated them into a unified framework. This framework, powered by the DSL, aims to generate most of the necessary code, reducing the risk of common pitfalls. To validate the proposed DSL and framework, we evaluate its applicability using various open-source projects. The evaluation focuses on robustness, reusability of interface definitions, and asynchronicity, and it demonstrates how oversights in these projects could have been avoided. As most of the analyzed projects are only for demonstration purposes, the results might have limited applicability in real-world scenarios, but on the other hand, these demonstration projects are there for a reason, so developers can learn how to create microservice architectures. In conclusion, while the thesis presents a promising approach to harmonize synchronous and asynchronous communication in microservices, further research is needed, especially in areas like communication with external services.