# Protocol Compatibility

> A rule or precondition that both ends of a connection speak a declared protocol version they both support.

Record: `architecture:protocol-compatibility`
Kind: constraint
Layer: [Contracts Core](https://banes-lab.com/records/layer/contracts-core.md)
Severity: mandatory
Scope: integration, network, message
Canonical: https://banes-lab.com/ontology#architecture-protocol-compatibility

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [Versioning](https://banes-lab.com/records/architecture/versioning.md) and before [Interoperability](https://banes-lab.com/records/architecture/interoperability.md).

## Repair

- Refactored by: Add Adapter, Normalize Protocol
- Detected by: protocol conformance failure
- Violated by: unsupported protocol changes
- Measured by: conformance test pass rate
- Enforced by: conformance tests

## Requires

- [Protocol Contract](https://banes-lab.com/records/lexicon/protocol-contract.md)
- [Versioning](https://banes-lab.com/records/architecture/versioning.md)

## Reinforces

- [Interoperability](https://banes-lab.com/records/architecture/interoperability.md)

## Enables

- [Multi-Client Integration](https://banes-lab.com/records/lexicon/multi-client-integration.md)

## Conflicts with

- [Proprietary Drift](https://banes-lab.com/records/lexicon/proprietary-drift.md)

## In tension with

- [Protocol Optimization](https://banes-lab.com/records/lexicon/protocol-optimization.md)

## Tensions

- [Protocol Compatibility / Protocol Optimization](https://banes-lab.com/records/tension/protocol-compatibility-protocol-optimization.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)

## Linked from

- [Contracts / Interfaces / Compatibility](https://banes-lab.com/ontology/principles/architecture-category-contracts-interfaces-compatibility.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)
