Single Source of Truth
Kind: principle
Layer: Contracts Core
Aliases: SSOT
Record: architecture:single-source-of-truth
Severity: mandatory
Scope: configuration, data, rule, schema
Canonical: Ontology
A design rule that each fact, rule or configuration value has one owning definition, and every other value is derived from it.
Listed in Architecture principles, after Canonicalization and before Normalization.
Requires
Reinforces
Enables
Conflicts with
In tension with
Tensions
Contracts
Violated by
Refactored by
Severity
Category
Enforced by
- codemods/entrypoints/location.entrypoint.ts
- codemods/entrypoints/vocabulary.entrypoint.ts
- rules/entrypoints/writing.entrypoint.ts
- rules/eslint/centralized-strings.eslint.rule.ts
- rules/eslint/closure-no-browser-derivation.eslint.rule.ts
- rules/eslint/closure-paths-via-ssot.eslint.rule.ts
- rules/eslint/closure-rule-declarations-resolve.eslint.rule.ts
- rules/eslint/markup-through-builder.eslint.rule.ts
- rules/eslint/no-exclusion-membership.eslint.rule.ts
- rules/eslint/no-hardcoded-exclusions.eslint.rule.ts
- rules/eslint/no-inline-asset-path.eslint.rule.ts
- rules/eslint/no-inline-icon-options.eslint.rule.ts
- rules/eslint/no-literal-strings.eslint.rule.ts
- rules/eslint/no-redundant-type-shim.eslint.rule.ts
- rules/eslint/no-string-literal-ids.eslint.rule.ts
- rules/eslint/retired-collection-id.eslint.rule.ts
- rules/eslint/strings-derived-numbering.eslint.rule.ts
- rules/eslint/strings-link-construction.eslint.rule.ts
- runtime/entrypoints/coverage.entrypoint.ts
- runtime/entrypoints/config.entrypoint.ts
- runtime/entrypoints/dependency.entrypoint.ts
- runtime/entrypoints/rule.entrypoint.ts
- runtime/entrypoints/dependency.entrypoint.ts
Reinforced by
- Canonical Model
- Database Normalization
- Derived Record State
- Projection Channel
- Two-Direction Index
- Period-Decided Disposition
- Single Aggregate
- Closed Vocabulary
- Declared Jurisdiction
- Collision Consolidation
- Externally Resolved Slot
Required by
Linked from
- Integrating algorithms
- The loop
- The stance
- Three encodings
- Rules with names
- The behavior document
- The drop-in
- One home
- Definitions own what, code owns how
- The canon is grouped twice
- The structural domain
- Separate, trade, or mitigate
- Anti-patterns
- Domain Architecture
- Control / Coordination / Centralization
- Correctness / Determinism / Verification
- Core Modular Design
- Schema / Canonical Data / Semantics
- Security / Privacy / Compliance / Governance
- Coordination Surfaces
- Taxonomy / Classification / Naming
- Transactions / State / Concurrency
- Core Modular Design
- Core Vocabulary
- Quality Attributes
- Schema / Canonical Data / Semantics
- Architectural Clusters
- Centralization
- CSS cascade
- Severity levels
- The resolutions