Flow: a microservice architecture for achieving confidence in the compatibility of deployed microservices
Author(s)
Talkar, Arman
DownloadThesis PDF (667.5Kb)
Advisor
Jackson, Daniel
Ryabin, Aleks
Terms of use
Metadata
Show full item recordAbstract
When developing a Software-as-a-Service (SaaS) product using a microservices architecture, there often exists a conflict between product stability, by virtue of testing, and agility/throughput, by virtue of being able to deploy independently and quickly. This thesis presents Flow, a pattern for microservice development that bridges this tradeoff. Using semantic versioning, explicit specification, and development/deployment time tooling, Flow provides reasonable assurance that deployed microservices will be compatible with one another without the need for time-consuming, comprehensive end-to-end tests. When combined with integration testing, Flow provides assurance of both the compatibility and functionality of deployed microservices. Flow’s key advantage over existing solutions is its extremely fast feedback loop that provides developers with compatibility information at compile-time, allowing development to be compatibility-aware. Flow is demonstrated using a visual model, a standalone artifact that simulates the state and enforcement rules that comprise the pattern. The model serves as a blueprint for the full-fledged tooling that would enforce the pattern in a production environment.
Date issued
2021-06Department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer SciencePublisher
Massachusetts Institute of Technology