Robust Contract Evolution in a TypeSafe MicroServices Architecture

02/14/2020
by   João Costa Seco, et al.
0

Microservices architectures allow for short deployment cycles and immediate effects but offer no safety mechanisms when service contracts need to be changed. Maintaining the soundness of microservice architectures is an error-prone task that is only accessible to the most disciplined development teams. We present a microservice management system that statically verifies service interfaces and supports the seamless evolution of compatible interfaces. We define a compatibility relation that captures real evolution patterns and embodies known good practices on the evolution of interfaces. Namely, we allow for the addition, removal, and renaming of data fields of a producer module without breaking or needing to upgrade consumer services. The evolution of interfaces is supported by runtime generated proxy components that dynamically adapt data exchanged between services to match with the statically checked service code.The model was instantiated in a core language whose semantics is defined by a labeled transition system and a type system that prevents breaking changes from being deployed. Standard soundness results for the core language entail the existence of adapters, hence the absence of adaptation errors and the correctness of the management model. This adaptive approach allows for gradual deployment of modules, without halting the whole system and avoiding losing or misinterpreting data exchanged between system nodes. Experimental data shows that an average of 69 require adaptation and recompilation are safe under our approach.

READ FULL TEXT
research
05/13/2020

The Scalable Systems Laboratory: a Platform for Software Innovation for HEP

The Scalable Systems Laboratory (SSL), part of the IRIS-HEP Software Ins...
research
07/29/2022

Blade: A Blockchain-supported Architecture for Decentralized Services

Decentralized services and applications provide a multitude of advantage...
research
08/21/2021

Data Correction and Evolution Analysis of the ProgrammableWeb Service Ecosystem

The evolution analysis on Web service ecosystems has become a critical p...
research
08/25/2022

Cloud Process Execution Engine: Architecture and Interfaces

Process Execution Engines are a vital part of Business Process Managemen...
research
03/24/2023

JepREST: Functional tests for distributed REST applications

Application services often support mobile and web applications with REST...
research
02/23/2022

Model-Driven Generation of Microservice Interfaces: From LEMMA Domain Models to Jolie APIs

We formally define and implement a translation from domain models in the...
research
04/09/2020

CLAIR: A Contract-based Framework for Developing Resilient CPS Architectures

Industrial cyber-infrastructure is normally a multilayered architecture....

Please sign up or login with your details

Forgot password? Click here to reset