Maintaining backwards compatibility is the discipline of allowing a system to change while ensuring that existing consumers continue to function without modification.
A "Breaking Change" is any modification to the API contract that causes a consumer to fail.
Int to String).| Strategy | Example | Pros | Cons |
|---|---|---|---|
| URI | /v1/users | Easy to route/cache. | Pollutes URI namespace. |
| Header | Accept-Version: 2 | Clean URIs. | Harder for browser testing. |
| Media Type | Accept: application/vnd.v2+json | REST purest. | Complex client implementation. |
Expert Recommendation: Use URI versioning for major architectural shifts (e.g., moving from XML to JSON). Use Header-based versioning for iterative data model changes.
To safely remove or rename a field, follow this three-phase rollout:
new_email) to the response but keep the old field (email). Both fields return the same data.Sunset: Wed, 15 May 2025). Encourage clients to switch..proto file as long as the tag number remains the same; the binary format is unaffected. Rule: Never reuse a tag number from a deleted field.See Also:
Cluster Hub: Software Architecture Hub: Distributed Systems, Domain-Driven Design, and Event-Driven Systems (software-architecture)