Graph
Coexistence Style

🧬Coexistence Style

NEW

Also known as: Side-by-side Versioning

An API evolution strategy where multiple service versions run concurrently so clients can migrate at their own pace.

DESCRIPTION

The coexistence style keeps multiple API versions deployed simultaneously, allowing gradual client migration and minimizing breaking-change risk. It enables controlled deprecation windows and targeted routing by version. Operationally, it requires version-aware deployment, monitoring, and documentation, and may increase infrastructure costs. Strong governance is critical to prevent version sprawl and inconsistent behavior. It pairs well with blue-green and canary strategies to introduce new versions safely. Toolkits and gateways often provide routing and policy support for coexisting versions.

ALTERNATIVE DEFINITIONS

Microsoft Learn

You may need to support multiple versions of your API simultaneously.

Explicitly emphasizes parallel version support in API design.

Source

Microsoft Learn

The API Versioning library allows you to maintain multiple versions of your APIs.

Highlights tooling support for running multiple API versions.

Source

API Versioning Schema Evolution Deprecation Policy Versioning Blue-Green Deployment Canary Release Contract Testing Consumer-Driven Contracts Microservices Continuous Delivery

COMPETING TERMS

Compatibility Style In-place Evolution

RELATIONS

KNOWLEDGE AREAS

Software Engineering Platform & Tooling Data Services

TARGET AUDIENCE

Software Architect Solution Architect Software Developer DevOps Engineer Product Owner IT Manager

EXTERNAL SOURCES

  • Wikipedia - Application programming interface
  • Microsoft Learn - API design best practices including versioning
  • Zalando - Guidelines emphasizing compatibility

TOP QUESTIONS

When should I use the Coexistence Style for API versioning?

Use it when breaking changes are necessary but clients need time to migrate. It’s suitable for large ecosystems with diverse client release cycles.

Category: HowTo

What are the risks of the Coexistence Style?

Version sprawl, increased operational load, and inconsistent behavior across versions are key risks. Strong governance and deprecation policies mitigate them.

Category: Risks

How does Coexistence compare to Compatibility Style?

Coexistence runs multiple versions in parallel; compatibility aims to avoid breaking changes entirely. Many organizations blend both depending on change scope.

Category: Alternatives

What infrastructure is required for Coexistence Style?

You need routing based on version (path, header, or media type), separate deployments, monitoring per version, and clear documentation for consumers.

Category: Requirements

How do you deprecate versions under Coexistence?

Publish timelines, use deprecation headers, monitor usage, and provide migration guides. Enforce cutoffs after adequate notice and support windows.

Category: Management

What’s a common mistake with Coexistence Style?

Leaving versions active indefinitely without consolidation leads to maintenance burden. Plan convergence and automate removal of obsolete versions.

Category: Mistakes

How do feature flags relate to Coexistence?

Feature flags manage behavior within a version; coexistence manages multiple versions. They can be combined to reduce version proliferation.

Category: Opinion

How is testing handled across coexisting versions?

Use contract tests and distinct test suites per version. Track test coverage and SLIs per version to prevent regressions and drift.

Category: Testing

Where can I learn more about API versioning strategies?

Review vendor guidelines (Microsoft), community guidelines (Zalando), and API gateway documentation for routing and deprecation patterns.

Category: Learning