# Canonical Data Model

> A design pattern in which integrated systems exchange data through one shared model, with a mapping per system.

Record: `architecture:canonical-data-model`
Kind: pattern
Layer: [Contracts Core](https://banes-lab.com/records/layer/contracts-core.md)
Severity: contextual
Scope: integration, enterprise data
Canonical: https://banes-lab.com/ontology#architecture-canonical-data-model

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [Canonical Model](https://banes-lab.com/records/architecture/canonical-model.md) and before [Canonical Schema](https://banes-lab.com/records/architecture/canonical-schema.md).

## Repair

- Refactored by: Centralize Data Mapping, Add Anti-Corruption Layer
- Detected by: duplicated transformation logic
- Violated by: point-to-point inconsistent mappings
- Measured by: transformation duplication
- Enforced by: data contract review

## Requires

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

## Reinforces

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

## Enables

- [Cross-System Mapping](https://banes-lab.com/records/lexicon/cross-system-mapping.md)

## In tension with

- [Bounded Context Purity](https://banes-lab.com/records/lexicon/bounded-context-purity.md)
- [Local Model Autonomy](https://banes-lab.com/records/lexicon/local-model-autonomy.md)

## Tensions

- [Canonical Data Model / Bounded Context Purity](https://banes-lab.com/records/tension/bounded-context-purity-canonical-data-model.md)
- [Canonical Data Model / Local Model Autonomy](https://banes-lab.com/records/tension/canonical-data-model-local-model-autonomy.md)

## Severity

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

## Category

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

## Required by

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

## Linked from

- [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)
- [Schema / Canonical Data / Semantics](https://banes-lab.com/ontology/lexicon/lexicon-category-schema-canonical-data-semantics.md)
- [Severity levels](https://banes-lab.com/ontology/schema/the-vocabulary-severity.md)
- [The resolutions](https://banes-lab.com/ontology/schema/the-resolutions.md)
