Breaking changes and roll out strategies

Initial Release (N=32) - January

Preparation (N+1=33) - February (compatible with N=32)
Intermediary (N+2=34) - March (compatible with N=32)

Switch (N+3=35) - April (incompatible with N=32, compatible with N=33 & N=34)
Intermediary (N+4=36) - May (incompatible with N=32, compatible with N=33 & N=34)

Clean-up (N+5=37) - June (incompatible with N=33 & N=34, compatible with N=35 & N=36)


Since (x-1) >= 2 and x=3 (April), deprecate January’s release in April.
Since (y-x) >= 2 and x=3, y=5 (June), deprecate March’s release in June.

Another way to think about this is that, at any point in time, the current release remains compatible with the two previous releases.