# Schema Drift

> A defect in which the producers, consumers and stores of one payload evolve its shape independently until its meaning diverges.

Record: `architecture:schema-drift`
Kind: anti-pattern
Layer: [Enforcement Core](https://banes-lab.com/records/layer/enforcement-core.md)
Severity: discouraged
Scope: contract_compatibility, security_governance, model_governance
Canonical: https://banes-lab.com/ontology#architecture-schema-drift

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [Concrete Coupling](https://banes-lab.com/records/architecture/concrete-coupling.md) and before [Implicit Contract](https://banes-lab.com/records/architecture/implicit-contract.md).

## Repair

- Refactored by: define_schema_contract, version_schema, add_compatibility_tests, centralize_schema_registry, validate_payloads
- Detected by: schema_diff_failure, missing_schema_registry, consumer_parse_errors, undocumented_field_changes, nullability_mismatch
- Violated by: Allow producers, consumers, storage models, and documentation to evolve independently without versioned schema governance, then let payload meaning diverge over time.
- Measured by: schema diff failures and consumer parse errors per release
- Enforced by: schema registry, compatibility tests in the build

## Severity

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

## Category

- [Anti-patterns](https://banes-lab.com/records/architecture-category/anti-patterns.md)

## Force

- [Contract compatibility](https://banes-lab.com/records/force/contract-compatibility.md)
- [Model governance](https://banes-lab.com/records/force/model-governance.md)
- [Security governance](https://banes-lab.com/records/force/security-governance.md)

## Negated by

- [Data Contract](https://banes-lab.com/records/architecture/data-contract.md)
- [Canonical Schema](https://banes-lab.com/records/architecture/canonical-schema.md)

## Linked from

- [A system is a graph](https://banes-lab.com/software-architecture/model/a-system-is-a-graph.md)
- [Seven controls, seven classes](https://banes-lab.com/software-architecture/decay/seven-controls-seven-classes.md)
- [The honest gaps](https://banes-lab.com/software-architecture/coverage/the-honest-gaps.md)
- [Anti-patterns](https://banes-lab.com/ontology/principles/architecture-category-anti-patterns.md)
- [Contracts / Interfaces / Compatibility](https://banes-lab.com/ontology/principles/architecture-category-contracts-interfaces-compatibility.md)
- [Schema / Canonical Data / Semantics](https://banes-lab.com/ontology/principles/architecture-category-schema-canonical-data-semantics.md)
- [Failure shapes](https://banes-lab.com/ontology/reasoning/the-failure-shapes.md)
- [Severity levels](https://banes-lab.com/ontology/schema/the-vocabulary-severity.md)
- [The forces](https://banes-lab.com/ontology/schema/the-forces.md)
