Secondo semver , la versione principale di un componente deve essere aggiornata quando abi - il cambiamento del cambiamento è incorporato. Wikipedia fa un buon lavoro nel descrivere come abi definisce l'interazione tra diversi componenti e include tipi di dati nella sua definizione. Ma non sono sicuro che quella definizione includa oggetti serializzabili (astrattamente, non un'interfaccia orribile di Java).
Se la strategia di serializzazione non è inclusa nella definizione e viene apportata una modifica a detta strategia tra versioni secondarie, allora posso immaginare i seguenti scenari:
- La macchina che esegue v1.0 effettua una chiamata remota per eseguire la macchina v1.1 e la chiamata fallisce.
- Il server con ampi aggiornamenti persistenti della coda di lavoro dalla v1.0 alla v1.1 e la coda non possono più essere elaborati.
Inoltre, se la modifica al formato può essere fatta in un modo compatibile con le versioni precedenti, non cambia qualcosa?