recall

← recall

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

related

aliases: expand-and-contract

topics: refactoring, deployment

references: