Backwards Compatibility
Let's inspect some software versioning issues in a distributed system that lead to the backwards and forward compatibility properties.
We'll cover the following...
As explained earlier, a defining characteristic of distributed systems is composed of multiple nodes. It is useful to allow the various nodes of such a system to operate independently for various reasons. A typical requirement for some applications in real life is to deploy new versions of the software with zero downtime.
Rolling deployments
The simplest way to deploy new versions of the software with zero downtime is to perform rolling deployments instead of deploying in lockstep the software to all the servers at the same time.
Note: In some cases, this is not just a nice-to-have but an inherent characteristic of the system.
Example
Mobile applications (e.g., Android ...