According to semver, the major version of a component must be updated when an abi-breaking change is incorporated. Wikipedia does a good job of describing how abi defines the interaction between different components and includes data types in its definition. But, I'm unsure whether that definition includes serializable objects (abstractly, not Java's horrible interface).
If the serialization strategy is not included in the definition, and a change is made to said strategy between minor versions, then I can imagine the following scenarios happening:
- Machine running v1.0 makes a remote call to machine running v1.1 and the call fails.
- Server with large persistent work queue updates from v1.0 to v1.1 and queue can no longer be processed.
Additionally, if the modification to the format can be made in a backwards compatible way, does that change anything?