Given
- new version
is compatiable with
old version - old version
is NOT compatiable with
new version
Then
- rollout(old -> new) or rollback(new -> old)
- case#1 new produce -> new consume OK
- case#2 new produce -> old consume ERROR
- case#3 old produce -> new consume OK
- case#4 old produce -> old consume OK
Review
- if retry could make case#2 work, then it’s ok and expected, otherwise we need to figure out how to do the upgrade carefully
- if cache object deserilization is included, better consider using a fresh new cache key(sth like version number) to make sure new version won’t load the outdated version of cache data