Data compatibility in distributed systems is a problem that is often adressed in ad-hoc manners and suffer from bikeshedding. Developing a formal framework for reasoning about it is crucial to ensure a seamless evolution of complex systems and easy inter-connectivity of components.
Disclaimer
This gist talks specifically about backward compatibility rules. Intuitively, forward compatibility rules are the opposite of backward ones.