# Stable Interfaces

> The degree to which a public interface keeps its signatures and meaning across releases.

Record: `architecture:stable-interfaces`
Kind: quality-attribute
Layer: [Contracts Core](https://banes-lab.com/records/layer/contracts-core.md)
Severity: mandatory
Scope: API, module, service
Aliases: Stable Interface
Canonical: https://banes-lab.com/ontology#architecture-stable-interfaces

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [Explicit Contracts](https://banes-lab.com/records/architecture/explicit-contracts.md) and before [Interface-Based Design](https://banes-lab.com/records/architecture/interface-based-design.md).

## Repair

- Refactored by: Add Version, Add Adapter, Deprecate Gradually
- Detected by: incompatible API diffs
- Violated by: signature churn, [schema drift](https://banes-lab.com/records/architecture/schema-drift.md)
- Measured by: breaking-change frequency
- Enforced by: API diff checks, contract tests

## Requires

- [Versioning](https://banes-lab.com/records/architecture/versioning.md)
- [Backward Compatibility](https://banes-lab.com/records/architecture/backward-compatibility.md)

## Reinforces

- [Low Coupling](https://banes-lab.com/records/architecture/low-coupling.md)
- [Replaceability](https://banes-lab.com/records/architecture/replaceability.md)

## Enables

- [Independent Consumers](https://banes-lab.com/records/lexicon/independent-consumers.md)

## Conflicts with

- [Breaking Changes](https://banes-lab.com/records/lexicon/breaking-changes.md)

## In tension with

- [Evolution Speed](https://banes-lab.com/records/lexicon/evolution-speed.md)

## Tensions

- [Stable Interfaces / Evolution Speed](https://banes-lab.com/records/tension/evolution-speed-stable-interfaces.md)

## Severity

- [mandatory](https://banes-lab.com/records/vocabulary/severity-mandatory.md)

## Category

- [Contracts / Interfaces / Compatibility](https://banes-lab.com/records/architecture-category/contracts-interfaces-compatibility.md)

## Required by

- [Explicit Boundaries](https://banes-lab.com/records/architecture/explicit-boundaries.md)
- [Runtime Extensibility](https://banes-lab.com/records/architecture/runtime-extensibility.md)
- [Explicit Contracts](https://banes-lab.com/records/architecture/explicit-contracts.md)
- [Interface-Based Design](https://banes-lab.com/records/architecture/interface-based-design.md)
- [API Contract](https://banes-lab.com/records/architecture/api-contract.md)
- [Encapsulation](https://banes-lab.com/records/architecture/encapsulation.md)
- [Composability](https://banes-lab.com/records/architecture/composability.md)
- [Dependency Inversion Principle](https://banes-lab.com/records/architecture/dependency-inversion.md)
- [Plugin Architecture](https://banes-lab.com/records/architecture/plugin-architecture.md)
- [Extension Points](https://banes-lab.com/records/architecture/extension-points.md)

## Reinforced by

- [Principle of Least Surprise](https://banes-lab.com/records/architecture/principle-of-least-surprise.md)

## Linked from

- [Domain Architecture](https://banes-lab.com/ontology/principles/architecture-category-domain-architecture.md)
- [Runtime Discovery / Dynamic Binding](https://banes-lab.com/ontology/principles/architecture-category-runtime-discovery-dynamic-binding.md)
- [Contracts / Interfaces / Compatibility](https://banes-lab.com/ontology/principles/architecture-category-contracts-interfaces-compatibility.md)
- [Core Modular Design](https://banes-lab.com/ontology/principles/architecture-category-core-modular-design.md)
- [SOLID / Object-Oriented Design](https://banes-lab.com/ontology/principles/architecture-category-solid-object-oriented-design.md)
- [Plugin / Extensibility / IoC](https://banes-lab.com/ontology/principles/architecture-category-plugin-extensibility-ioc.md)
- [Schema / Canonical Data / Semantics](https://banes-lab.com/ontology/principles/architecture-category-schema-canonical-data-semantics.md)
- [Contracts / Interfaces / Compatibility](https://banes-lab.com/ontology/lexicon/lexicon-category-contracts-interfaces-compatibility.md)
- [Severity levels](https://banes-lab.com/ontology/schema/the-vocabulary-severity.md)
- [The resolutions](https://banes-lab.com/ontology/schema/the-resolutions.md)
