Changing without Breaking
May 27, 2021 | Technical Blog
Software, as opposed to hardware, is “soft”. We can easily change the code of an application to address new requirements.
In fact, we have to accommodate to new requirements, and quickly iterate on the code base to satisfy all our customers’ needs.
Unfortunately, changes in our API may break existing clients. Similarly, since our platform is made of micro-services, API changes in one service may result in breaking a downstream service.
How can we keep the freedom of changing things without fearing of breaking others?
In this article, we describe the different types of breakages that can happen, and the types of changes that are safe. Then, we present various tools we set up at Bestmile to continuously check that the changes we introduce in an API won’t break other services or clients, and that the changes we introduce in data structures serialized into event logs won’t break the consumers of these logs.