Evolution is necessary and we can't prevent it. Whenever we allow one of the services to evolve, one of the most considerable aspects of maintaining is service versioning. In this section, we are going to see various aspects related to handling changes in the system and overcoming failures if any are introduced in the system.
Service versioning should be thought of firstly and not be taken up as an after-development exercise. An API is a published contract between a server and consumer. Maintaining versions helps us to release new services without breaking anything for existing customers (not everyone accepts change in the first attempt). Both the old version and the new version should coexist side by side.
Prevalent styles of versioning are using the semantic versions. Any semantic version will have three major components—major (whenever there is a groundbreaking change), minor (whenever there is a backward-compatible behavior)...