Skip to content

Versioning as Change Management

All interfaces evolve, and versioning strategies are policies for managing the tension between producer innovation and consumer stability - there is no universally correct approach, only trade-offs.

Tension Addressed

Stability vs. Evolution

Recognizable As

Version identifiers in URLs or headers, semantic versioning, deprecation notices, sunset policies, multiple API versions running concurrently, migration guides

Canonical Sources

Semantic Versioning specification; "REST API Design Rulebook" - Masse (2011); "API Design Patterns" - Geewax (2021)

Transfers To

Package management, Database migrations, Protocol evolution, Library design, Mobile app backwards compatibility

Sub-concepts: - Breaking vs. non-breaking changes: Additive changes (new fields, endpoints) are generally safe; removals and semantic changes require version bumps - Deprecation lifecycle: Announce, warn, sunset - managing the transition period while consumers adapt - Version explosion problem: Every maintained version multiplies operational burden