Safe API Evolution in a Microservice Architecture with a Pluggable and Transactionless Solution - Ribeiro, Rodrigo Jorge (2022)
In contrast to monolithic system designs, microservice architectures provide greater scala- bility, availability, and delivery by separating the elements of a large project into indepen- dent entities linked through a network of services. Because services are tied to one another via their interfaces, they can only evolve separately if their contracts remain consistent. There is a scarcity of mechanisms for safely evolving and discontinuing functionalities of services. In monolithic system design’s, changing the definition of an element can be accom- plished quickly with the aid of developer tools (such as IDE refactoring toolkits). In distributed systems there is a lack of comparable tools, developers are left with the burden of manually tracking down and resolving problems caused by uncontrolled updates. To ensure that microservices are working properly the general approach is to validate their behaviour through empirical tests. This thesis aims to supplement the conventional approach by providing mechanisms that support the automatic validation of deployment operations, and the evolution of mi- croservice interfaces. It ́s presented a microservice management system that verifies the safety of modifications to service interfaces and that enables the evolution of service con- tracts without impacting consumer services. The system use runtime-generated proxies, that dynamically convert the data sent between services to the format expected by static code, thereby relieving the developer of the need to manually adapt existing services.