IMPLEMENTING MICROSERVICES ARCHITECTURE: TECHNICAL CHALLENGES AND SOLUTIONS
DOI:
https://doi.org/10.35546/kntu2078-4481.2024.4.39Keywords:
monolithic architecture, microservice architecture, service decomposition, inter-service communication, security assurance, distributed data managementAbstract
This paper examines the technical challenges faced by organizations and developers during the implementation of microservices architecture and offers solutions to overcome them. It focuses on key aspects such as service decomposition, inter-service communication, security assurance, and data management in distributed systems. Domain-Driven Design is identified as a critical strategy for segmenting monolithic applications into business-oriented microservices, thereby enhancing the system's maintainability and scalability. The discussion on inter-service communication reveals trade-offs between synchronous and asynchronous methods, noting that while synchronous communication provides immediate feedback, it can lead to delays and potential failures. In contrast, asynchronous strategies improve resilience, scalability, and loose coupling but introduce additional complexity. The research also explores security mechanisms, emphasizing the role of Single Sign-On and API Gateway in simplifying access control and enhancing security in microservice architectures. Furthermore, the paper provides recommendations for addressing the challenges of distributed data management, advocating for event-driven replication and the Saga pattern to ensure data consistency across services, alongside the use of GraphQL, API Gateway, and the CQRS pattern for efficient data aggregation and retrieval. By examining these aspects, the paper underscores the critical importance of a strategic and informed approach to implementing microservices, emphasizing the need to understand the implications of each architectural option for building resilient, scalable, and adaptive software systems.
References
Vural H., Koyuncu M. Does Domain-Driven Design Lead to Finding the Optimal Modularity of a Microservice?. IEEE Access. 2021. Vol. 9. P. 32721–32733. DOI: 10.1109/access.2021.3060895
Mihai I. S. A Systematic Evaluation of Microservice Architectures Resulting from Domain-Driven and Dataflow-Driven Decomposition. Bachelor's thesis. University of Twente, 2023. URL: https://essay.utwente.nl/95827/
Rademacher F., Sachweh S., Zündorf A. Towards a UML Profile for Domain-Driven Design of Microservice Architectures. Software Engineering and Formal Methods. Cham, 2018. P. 230–245. DOI: 10.1007/978-3-319-74781-1_17
Rudrabhatla C. K. Impacts of Decomposition Techniques on Performance and Latency of Microservices. International Journal of Advanced Computer Science and Applications. 2020. Vol. 11, no. 8. DOI: 10.14569/ijacsa.2020.0110803
Newman S. Building Microservices: Designing Fine-Grained Systems. O'Reilly Media, Incorporated, 2021. 616 p
Kazanavičius J., Mažeika D. Evaluation of Microservice Communication While Decomposing Monoliths. Computing and Informatics. 2023. Vol. 42, no. 1. P. 1–36. DOI: 10.31577/cai_2023_1_1
Shafabakhsh B., Lagerström R., Hacks S. Evaluating the Impact of Inter Process Communication in Microservice Architectures. QuASoQ@APSEC. 2020. P. 55–63. URL: https://ceur-ws.org/Vol-2767/07-QuASoQ-2020.pdf
I. Karabey Aksakalli et al Deployment and communication patterns in microservice architectures: A systematic literature review. Journal of Systems and Software. 2021. Vol. 180. P. 111014. DOI: 10.1016/j.jss.2021.111014
Interservice communication. URL: https://learn.microsoft.com/en-us/azure/architecture/microservices/design/interservice-communication
Tereshchenko O., Trintina N. Development Principles of Secure Microservices. CPITS II. 2021. P. 11–20. URL: https://ceur-ws.org/Vol-3188/paper2.pdf
de Almeida M. G., Canedo E. D. Authentication and Authorization in Microservices Architecture: A Systematic Literature Review. Applied Sciences. 2022. Vol. 12, no. 6. P. 3023. DOI: 10.3390/app12063023
Mateus-Coelho N., Cruz-Cunha M., Ferreira L. G. Security in Microservices Architectures. Procedia Computer Science. 2021. Vol. 181. P. 1225–1236. DOI: 10.1016/j.procs.2021.01.320
Chandramouli R. Security strategies for microservices-based application systems. Gaithersburg, MD : National Institute of Standards and Technology, 2019. DOI: 10.6028/nist.sp.800-204
K. Munonye and P. Martinek. Evaluation of Data Storage Patterns in Microservices Archicture. 2020 IEEE 15th International Conference of System of Systems Engineering (SoSE), Budapest, Hungary, 2020. DOI: 10.1109/sose50414.2020.9130516
Challenges and solutions for distributed data management. URL: https://learn.microsoft.com/en-us/dotnet/architecture/microservices/architect-microservice-container-applications/distributed-data-management