APPROACHES TO INTER-PROCESS COMMUNICATION IN MICROSERVICE SYSTEMS IN THE SCIENTIFIC LITERATURE
DOI:
https://doi.org/10.35546/kntu2078-4481.2024.2.15Keywords:
microservice architecture, inter-process communication, modeling, remote procedure invocation, remote procedure call, messaging, message broker, saga, patterns.Abstract
Today, the problem of designing a microservice architecture is becoming more and more relevant. Microservices, which allow building loosely coupled systems, have a number of advantages over monoliths: the possibility of horizontal scaling, better separation of the system into its constituent parts (services), each of which is easier to develop and maintain, the possibility of more efficient use of resources, etc. These and a number of other reasons lead to the growing popularity of this type of architecture in the industry, which influences the choice of architects and software engineers regarding the implementation of microservice architecture both when building new systems and as a vector of development of legacy monolithic systems, which are increasingly transferred to microservices. The issues related to the design of microservice systems contain a large number of different aspects, and one of them is the choice of the type of interprocess communication along with a number of accompanying patterns, technologies, and tools. The impact of such a choice cannot be overstated: the ability of services to exchange data effectively forms the foundation of business logic organization, which at the same time has a significant impact on such non-functional characteristics as scalability, reliability, and complexity of development and maintenance. This article examines the methods, principles, and tools intended for the organization of inter-process communication in microservice systems, highlights the patterns that allow of reducing the influence of limitations and shortcomings of certain methods and tools, provides principles and approaches both established in the industry and known mostly in the academia. The abovementioned aspects are considered in the context of both synchronous and asynchronous communication, within which there are their own subclasses of the types of protocols, tools, accompanying patterns, and distributed transactions.
References
Richardson C. Microservices patterns: with examples in Java. Shelter Island, New York: Manning Publications, 2019. 490 p.
Newman S. Building microservices: designing fine-grained systems. Second Edition. Beijing: O’Reilly Media, 2021. 586 p.
Steen M. van, Tanenbaum A.S. Distributed systems. 4th edition, Version 01 (January 2023). Maarten van Steen, 2023. 669 p.
Kleppmann M. Designing Data-Intensive Applications. O'Reilly Media, 2017. 611 p.
Fielding R.T. et al. Reflections on the REST architectural style and “principled design of the modern web architecture” (impact paper award) // Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering. Paderborn Germany: ACM, 2017. P. 4–14.
Fowler M. Richardson Maturity Model [Electronic resource]. 2010. URL: https://martinfowler.com/articles/richardsonMaturityModel.html.
Mastrangelo C. gRPC + JSON [Electronic resource]. 2018. URL: https://grpc.io/blog/grpc-with-json/.
Viotti J.C., Kinderkhedia M. A Survey of JSON-compatible Binary Serialization Specifications: arXiv:2201.02089. arXiv, 2022.
Zhang L. et al. High performance microservice communication technology based on modified remote procedure call // Sci Rep. 2023. Vol. 13, № 1. P. 12141.
Falahah, Surendro K., Sunindyo W.D. Circuit Breaker in Microservices: State of the Art and Future Prospects // IOP Conf. Ser.: Mater. Sci. Eng. 2021. Vol. 1077, № 1. P. 012065.
Mendonca N.C. et al. Model-Based Analysis of Microservice Resiliency Patterns // 2020 IEEE International Conference on Software Architecture (ICSA). Salvador, Brazil: IEEE, 2020. P. 114–124.
Miraj M., Fajar A.N. Model-Based Resilience Pattern Analysis For Fault Tolerance In Reactive Microservice. Vol. 2022. № 9.
Erdenebat B., Bud B., Kozsik T. Challenges in service discovery for microservices deployed in a Kubernetes cluster – a case study // Infocommunications journal. 2023. Vol. 15, № Special Issue. P. 69–75.
Moore J. et al. Zest: REST over ZeroMQ: arXiv:1902.07009. arXiv, 2019.
Kasarlewar O., Desai P.S. Secure Broker-less Publish/Subscribe System using ECC. 2015. Vol. 6.
Jairange R.A., Gupta A.K. Secure Brokerless System for Publisher/Subscriber Relationship in Distributed Network. 2016. Vol. 6, № 7.
Moll P. et al. Resilient Brokerless Publish-Subscribe over NDN // MILCOM 2021–2021 IEEE Military Communications Conference (MILCOM). San Diego, CA, USA: IEEE, 2021. P. 438–444.
Rathore N., Kant S. Enhanced Blockchain Application for Pub-Sub Model // Advances in Electromechanical Technologies / ed. Pandey V.C., Pandey P.M., Garg S.K. Singapore: Springer Singapore, 2021. P. 299–311.
Maharjan R. et al. Benchmarking Message Queues // Telecom. 2023. Vol. 4, № 2. P. 298–312.
Fu G., Zhang Y., Yu G. A Fair Comparison of Message Queuing Systems // IEEE Access. 2021. Vol. 9. P. 421–432.
Hegde R.G. Low Latency Message Brokers. 2020. Vol. 07, № 05.
Chy M.S.H. et al. Comparative Evaluation of Java Virtual Machine-Based Message Queue Services: A Study on Kafka, Artemis, Pulsar, and RocketMQ // Electronics. 2023. Vol. 12, № 23. P. 4792.
Sekhar R.R., Gadad V. Microservices, Saga Pattern and Event Sourcing: A Survey. 2020. Vol. 07, № 05.
Gordesli M., Nasab A., Varol A. Handling Rollbacks with Separated Response Control Service for Microservice Architecture // 2022 3rd International Informatics and Software Engineering Conference (IISEC). Ankara, Turkey: IEEE, 2022. P. 1–4.
Daraghmi E., Zhang C.-P., Yuan S.-M. Enhancing Saga Pattern for Distributed Transactions within a Microservices Architecture // Applied Sciences. 2022. Vol. 12, № 12. P. 6242.
Dürr K., Lichtenthäler R., Wirtz G. Saga Pattern Technologies: A Criteria-based Evaluation: // Proceedings of the 12th International Conference on Cloud Computing and Services Science. Science and Technology Publications, 2022. P. 141–148.
Štefanko M., Chaloupka O., Rossi B. The Saga Pattern in a Reactive Microservices Environment: // Proceedings of the 14th International Conference on Software Technologies. Prague, Czech Republic: SCITEPRESS – Science and Technology Publications, 2019. P. 483–490.
Resilience strategies [Electronic resource]. URL: https://www.pollydocs.org/strategies/index.html.
Cloud Design Patterns [Electronic resource]. URL: https://learn.microsoft.com/en-us/azure/architecture/patterns/.
Sivrikaya F. et al. Internet of Smart City Objects: A Distributed Framework for Service Discovery and Composition // IEEE Access. 2019. Vol. 7. P. 14434–14454.