# Canonical Model

> A design rule that a concept has one authoritative representation, and every other representation is translated to and from it.

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

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [Type Safety](https://banes-lab.com/records/architecture/type-safety.md) and before [Canonical Data Model](https://banes-lab.com/records/architecture/canonical-data-model.md).

## Repair

- Refactored by: Introduce Canonical Model, Add Translator
- Detected by: same concept modeled inconsistently
- Violated by: duplicate conflicting representations
- Measured by: model duplication count
- Enforced by: schema governance, domain review

## Requires

- [Semantic Consistency](https://banes-lab.com/records/architecture/semantic-consistency.md)
- [Ubiquitous Language](https://banes-lab.com/records/architecture/ubiquitous-language.md)

## Reinforces

- [Single Source of Truth](https://banes-lab.com/records/architecture/single-source-of-truth.md)

## Enables

- [Normalized Translation](https://banes-lab.com/records/lexicon/normalized-translation.md)

## Conflicts with

- [Multiple Competing Models](https://banes-lab.com/records/lexicon/multiple-competing-models.md)

## In tension with

- [Bounded Context Autonomy](https://banes-lab.com/records/lexicon/bounded-context-autonomy.md)

## Tensions

- [Canonical Model / Bounded Context Autonomy](https://banes-lab.com/records/tension/bounded-context-autonomy-canonical-model.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 Data Model](https://banes-lab.com/records/architecture/canonical-data-model.md)

## Linked from

- [Separate, trade, or mitigate](https://banes-lab.com/software-architecture/principles/separate-trade-or-mitigate.md)
- [The principle architecture](https://banes-lab.com/software-architecture/glossary/the-principle-architecture.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)
