# Architecture principles whose category is Schema / Canonical Data / Semantics

> 13 records

This index as JSON: https://banes-lab.com/json/api/facets/architecture/category/schema-canonical-data-semantics

## Entries

- [Schema Validation](https://banes-lab.com/records/architecture/schema-validation.md): A mechanism that parses incoming data against a schema at the boundary and rejects any payload that does not conform.
- [Type Safety](https://banes-lab.com/records/architecture/type-safety.md): A mechanism that has the compiler reject operations on values of the wrong type before the code runs.
- [Canonical Model](https://banes-lab.com/records/architecture/canonical-model.md): A design rule that a concept has one authoritative representation, and every other representation is translated to and from it.
- [Canonical Data Model](https://banes-lab.com/records/architecture/canonical-data-model.md): A design pattern in which integrated systems exchange data through one shared model, with a mapping per system.
- [Canonical Schema](https://banes-lab.com/records/architecture/canonical-schema.md): A formal definition of one concept's shape, published once and used by every API, message and store that carries the concept.
- [Canonicalization](https://banes-lab.com/records/architecture/canonicalization.md): A technique for converting equivalent values to one normal form before they are compared, stored or checked.
- [Single Source of Truth](https://banes-lab.com/records/architecture/single-source-of-truth.md): A design rule that each fact, rule or configuration value has one owning definition, and every other value is derived from it.
- [Normalization](https://banes-lab.com/records/architecture/normalization.md): A technique for storing each fact once and referring to it by key wherever it is needed.
- [Semantic Consistency](https://banes-lab.com/records/architecture/semantic-consistency.md): The degree to which one name carries one meaning across the code, the schemas and the documentation.
- [Ubiquitous Language](https://banes-lab.com/records/architecture/ubiquitous-language.md): The practice of using the domain's own terms, agreed with its experts, in conversation, documentation and code alike.
- [Intent-Revealing Interface](https://banes-lab.com/records/architecture/intent-revealing-interface.md): A design rule that an operation's name and parameters state what it does for the caller.
- [Principle of Least Surprise](https://banes-lab.com/records/architecture/principle-of-least-surprise.md): A design rule that an operation behaves the way its name and its conventions lead a caller to expect.
- [Database Normalization](https://banes-lab.com/records/architecture/database-normalization.md): A technique for decomposing tables by their functional dependencies into normal forms, so no column depends on anything but its key.
