...

/

Maintaining Backwards Compatibility

Maintaining Backwards Compatibility

Explore some techniques used for maintaining backwards compatibility.

Semantic versioning

It’s usually beneficial to version the API of an application since that makes it easier to compare versions of different nodes and applications of the system and determine which versions are compatible with each other or not. Semantic versioning is a very useful convention, where each version number consists of three digits X.Y.Z.

Protocol negotiation

Protocol negotiation is another technique for maintaining backward compatibility through the use of explicitly versioned software.

Let’s consider an example mentioned previously, where the client of an application is a mobile application. Every version of the application needs to be backward compatible with all the client application versions running on user phones currently. This means that the staged approach described previously cannot be used when making backward incompatible changes since end users cannot be forced to upgrade to a newer version. Instead, the application can identify the version of the client and adjust its behavior accordingly.

For example, consider a feature introduced on version 4.1.2 that is backward incompatible with versions < 4.x.x. If the application receives a request from a 3.0.1 client, it can disable that feature ...