The Evaluation of Microservice Communication While Decomposing Monoliths
DOI:
https://doi.org/10.31577/cai_2023_1_1Keywords:
Microservice communication, cloud computing, software engineering, HTTP rest, RabbitMQ, Kafka, gRPC, GraphQLAbstract
One of the biggest challenges while migrating from a monolith architecture to a microservice architecture is to define a proper communication technology. In monolith applications, communication between components is performed using the in-process method or function calls, while different communication methods have to be established to achieve the same functionality in a microservice architecture. A microservices-based application is a distributed system running on multiple processes or services. Therefore, microservices must interact using inter-process communication technologies. This research aims to evaluate synchronous and asynchronous communication technologies and determine particular cases for their application while decomposing monolith into cloud-native applications. Five communication technologies, such as HTTP Rest, RabbitMQ, Kafka, gRPC, and GraphQL, have been evaluated and compared by proposed evaluation criteria. The advantages and disadvantages of each communication technology were identified in the context of microservices architecture.