# Stable Interfaces

Record: `arch: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#arch-stable-interfaces

## 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/arch/schema-drift.md)
- Measured by: breaking-change frequency
- Enforced by: API diff checks, contract tests

## requires

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

## reinforces

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

## enables

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

## conflicts-with

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

## tensions-with

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

## tensions

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

## referenced-by

- [Explicit Contracts](https://banes-lab.com/records/arch/explicit-contracts.md)
- [Interface-Based Design](https://banes-lab.com/records/arch/interface-based-design.md)
- [API Contract](https://banes-lab.com/records/arch/api-contract.md)
- [Backward Compatibility](https://banes-lab.com/records/arch/backward-compatibility.md)
- [Versioning](https://banes-lab.com/records/arch/versioning.md)
- [Low Coupling](https://banes-lab.com/records/arch/low-coupling.md)
- [Encapsulation](https://banes-lab.com/records/arch/encapsulation.md)
- [Composability](https://banes-lab.com/records/arch/composability.md)
- [Replaceability](https://banes-lab.com/records/arch/replaceability.md)
- [Explicit Boundaries](https://banes-lab.com/records/arch/explicit-boundaries.md)
- [Plugin Architecture](https://banes-lab.com/records/arch/plugin-architecture.md)
- [Extension Points](https://banes-lab.com/records/arch/extension-points.md)
- [Runtime Extensibility](https://banes-lab.com/records/arch/runtime-extensibility.md)
- [Principle of Least Surprise](https://banes-lab.com/records/arch/principle-of-least-surprise.md)
- [Dependency Inversion Principle (DIP)](https://banes-lab.com/records/arch/dependency-inversion.md)
