Deprecation and migration
Decision questions
- Does the old system still provide unique value?
- How many consumers? Migration cost each?
- Is replacement production-proven?
- Cost of NOT deprecating (security, maintenance)?
Compulsory vs advisory
| Type | When |
|---|---|
| Advisory | Stable legacy, optional migration |
| Compulsory | Security risk, blocks progress — need tooling + deadline |
Default advisory unless risk justifies force.
Process
- Build replacement first
- Announce — status, replacement, migration guide, timeline
- Migrate consumers incrementally; owner migrates users when possible
- Remove only after zero active usage verified
Patterns
| Pattern | Use when |
|---|---|
| Strangler | Gradual traffic shift |
| Adapter | Old interface, new implementation |
| Feature flag | Per-consumer or cohort cutover |
Zombie code signals
- No maintainer, active dependents, failing tests ignored, stale deps
Output
Deprecation notice + migration steps + removal checklist.