Strong typing for event-driven microservice architecture
Nikita Gerasimov
Abstract
Open-access reader
Nikita Gerasimov
Abstract
Open-access reader
Microservice architecture is a popular approach for building various systems. It consists of various dedicated small-sized components from a solid application. Components work together and provide the required business-logic but each one can be implemented with the most suitable technique. Moreover, overloaded parts can be scaled easily. However, data transfer layer does not guarantee compatibility of services during their development. After changing input or output data type of any microservice of the system there are too little ways to keep up compatibility of all other services. The problem is especially urgent for asynchronous communication because existing systems and standards work mostly with synchronous RPC or REST interoperation or cover high-level description of business-logic. One approach to guarantee compatibility of all services in the system is a preliminary check of data types before the services start to work. The previous paper considers realization of the mentioned approach with the dedicated service that checks types, connects services using description of the interfaces. The current paper covers further development of the approach: a system built with preliminary check of data types supports only asynchronous communication and all checks are provided by a message broker. We have implemented and compared simplified approach with alternative ways and have come to the conclusion that described way solves the problem of type inconsistency in a microservice event-driven architecture in a more convenient way than alternatives.
A significance statement is not available in the OpenAlex record.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
Microservice architecture is a popular approach for building various systems. It consists of various dedicated small-sized components from a solid application. Components work together and provide the required business-logic but each one can be implemented with the most suitable technique. Moreover, overloaded parts can be scaled easily. However, data transfer layer does not guarantee compatibility of services during their development. After changing input or output data type of any microservice of the system there are too little ways to keep up compatibility of all other services. The problem is especially urgent for asynchronous communication because existing systems and standards work mostly with synchronous RPC or REST interoperation or cover high-level description of business-logic. One approach to guarantee compatibility of all services in the system is a preliminary check of data types before the services start to work. The previous paper considers realization of the mentioned approach with the dedicated service that checks types, connects services using description of the interfaces. The current paper covers further development of the approach: a system built with preliminary check of data types supports only asynchronous communication and all checks are provided by a message broker. We have implemented and compared simplified approach with alternative ways and have come to the conclusion that described way solves the problem of type inconsistency in a microservice event-driven architecture in a more convenient way than alternatives.
Key concepts: Computer science, Business logic, Interoperation, Asynchronous communication, Backward compatibility, Architecture, Distributed computing, Compatibility (geochemistry)