parallel change pattern
Three steps: expand the interface to support old + new together; migrate callers one at a time; contract by removing the old. Decouples the change from the migration so you can ship gradually instead of in a flag day. The disciplined way to make breaking changes in a system you can't take down.
Three steps: expand the interface to support old + new together; migrate callers one at a time; contract by removing the old. Decouples the change from the migration so you can ship gradually instead of in a flag day. The disciplined way to make breaking changes in a system you can't take down.
symptoms
- need to change an interface in active use
- no flag day available
- can't coordinate all callers atomically
causes
- interface change requires coordinated update
- breaking change in a public API
fixes
- add new interface alongside old
- migrate callers one at a time
- remove old once nothing uses it
- paired with feature flags / deprecation warnings
you might say
- expand and contract
- parallel change
- rollout the deprecation