Single Source of Truth
Single Source of Truth
- Last updated
- Jul 16, 2026
- Relationships
- 6
Mental model
A fact may have many copies, but only one place is authorized to answer what it is now.
Visual memory card
The pattern, in one image.
A compact visual makes the pattern easier to recognize when it appears in a different example.

01 · Drift lab
Four copies. Only one gets to define the fact.
Switch between a healthy pipeline, an edited derivative, and two competing authorities. The files are not the problem; ambiguous write ownership is.
One authority, reproducible projections
The source advances to version 4. Every downstream representation is regenerated in one direction and records the same source version.
Brain Markdown
source · v4The only place that originates editorial changes.
Public package
from v4Generated from the source and safe to rebuild.
Blog copy
from v4Optimized for the publishing application.
Production
main · v4Serves the committed revision produced by the pipeline.
Many physical copies; one unambiguous correction path.
02 · Authority contract
An SSOT becomes real when four questions have answers.
Naming a file ‘canonical’ is only a promise. The surrounding system must make ownership, freshness, and recovery visible.
authorityWho may originate a correction?
Name the owner and the one accepted write path for this bounded fact.
directionWhich way do updates flow?
Prefer one-way generation unless the domain truly requires multiple writers.
freshnessHow stale may a copy be?
Declare the source version, refresh trigger, and acceptable delay.
recoveryHow do we rebuild it?
A derivative needs a deterministic, repeatable recovery path.
03 · Boundary check
The word ‘single’ causes three predictable mistakes.
SSOT centralizes decision authority for a fact. It does not require one physical copy, one database, or an infallible owner.
One source means only one copy.
Replicas, caches, reports, and indexes are expected; their authority is what must remain explicit.
One source means one giant database.
Different domains should own different facts. The unit of authority is bounded, not universal.
The source is automatically correct.
It can be wrong. SSOT tells everyone where the correction belongs and how it propagates.
04 · Concept neighborhood
Know whether a neighbor owns, traces, or projects the fact.
The nearby concepts solve different parts of the authority problem. Their relationship type matters more than their acronym.
Canonical Source
authority mechanismCanonical Source
The concrete representation formally selected as authoritative.
Lineage
provenanceData Lineage
Traces a projection back through versions and transformations.
Materialized View
derived projectionMaterialized View
Stores a read-friendly result that may lag and can be rebuilt.
Event Sourcing
implementation patternEvent Sourcing
Uses an ordered event log as the authority and replays it into views.
CQRS
architecture patternCommand Query Responsibility Segregation
Separates authoritative writes from read-optimized models.
SVOT
consumption agreementSingle Version of Truth
Aligns people on one definition or result rather than locating its owner.
Single Source of Truth
A Single Source of Truth (SSOT) solves the question hidden inside every duplicated fact: when copies disagree, which one has the authority to decide what is true now?
Its answer is not “delete every copy.” Caches, search indexes, reports, replicas, translated packages, and deployed pages are all useful. The pattern gives one bounded fact one authoritative owner and makes every other representation a traceable derivative.
The failure it prevents: drift
Imagine one article exists in four places:
source.md version 3
public package version 3
blog copy version 4
production version 3 + a manual hotfix
All four look plausible. A future sync might erase the best edit because nobody knows which direction updates should flow. This is drift: representations that were meant to agree quietly diverge.
An SSOT establishes an authority contract:
- Who may define this fact?
- Which direction do updates flow?
- How stale may a derived copy become?
- How is it rebuilt or reconciled after divergence?
One fact, one owner — not one database for everything
Authority should be scoped to a fact or domain:
- an order service owns the order lifecycle;
- an identity system owns a legal customer name;
- a source Markdown file owns an article's meaning;
- a committed main revision owns the production release.
These facts do not need to live in one physical store. In fact, forcing unrelated domains into one giant database can blur ownership instead of clarifying it.
A useful test is: which system is allowed to originate a correction? Other systems may read, subscribe, cache, index, translate, or project the fact, but they do not silently become a second independent writer.
A practical pipeline
authoritative source ──► public package ──► site copy ──► deployment
write here derived derived evidence
A healthy derivative carries enough lineage to explain itself:
derived_from = source identifier
source_version = commit, offset, or version
generated_at = timestamp
refresh_policy = on commit / every five minutes / nightly
rebuild_path = deterministic command or procedure
The safest default is one-way, repeatable generation. Circular synchronization — A ⇄ B ⇄ C ⇄ A — turns every participant into a potential authority and demands much harder conflict semantics.
A service example
Suppose an Order Service owns order status. It publishes updates that feed a search index, an analytics table, and a recommendation system.
Those copies may be optimized for different queries and may be eventually consistent. A refund still goes through the Order Service because it owns the complete transaction history. A fast, nearby copy does not become authoritative merely because it is convenient.
This is why an SSOT can coexist with replication and high read scale: physical multiplicity is allowed; ambiguous authority is not.
Authority is not correctness
The authoritative source can still contain a bug, a bad human entry, or an outdated rule. SSOT does not make its owner infallible. It makes correction directional: fix the owner, then regenerate or reconcile every derivative.
Without that direction, teams patch many copies independently and can never be sure the repair is complete.
Recovering from a split truth
When two copies have both received valid-looking edits:
- Pause the writes or releases that would widen the split.
- Name the exact fact in conflict.
- Choose authority using ownership, completeness, timeline, and audit evidence.
- Reconcile any valid downstream-only changes back into that source.
- Regenerate all derivatives.
- Add lineage, diff checks, write permissions, or a one-way publishing path.
The order matters: restore authority before restoring consistency. Synchronizing without first choosing a judge is just an arbitrary overwrite.
What it is not
- Not one giant database. SSOT is about bounded authority, not physical centralization.
- Not a ban on copies. Caches, replicas, materialized views, and reports are expected.
- Not automatically correct. It identifies where a correction belongs.
- Not Event Sourcing. An event log can implement an SSOT, but it is one implementation pattern.
- Not Single Version of Truth. SVOT emphasizes consumers agreeing on one definition or result; SSOT emphasizes where authority originates.
Where it becomes difficult
The simple one-writer model strains under offline-first collaboration, active-active multi-region writes, network partitions, or facts that genuinely require multiple independent authors.
Those systems still need explicit authority and conflict semantics, but may distribute them through leaders, quorums, merge rules, or Conflict-free Replicated Data Types (CRDTs). “We have multiple writers” is not a reason to leave disagreement undefined.
Five things to keep
- A fact may have many copies, but it needs one named authority.
- Every derivative should expose its source, version, freshness, and rebuild path.
- Prefer one-way, idempotent generation when the domain does not require multiple writers.
- Correct the source, then regenerate downstream; editing a projection creates drift.
- SSOT makes errors repairable and auditable, not impossible.
Relationships
Concept neighbors
Canonical Source
authority mechanismCanonical Source
The concrete file, store, or log formally chosen to represent an authoritative fact.
Data Lineage
provenanceData Lineage
Records where data came from, which transformations it passed through, and which source version produced it.
Materialized View
derived projectionMaterialized View
A stored, query-friendly representation that can lag and should be reproducible from its source.
Event Sourcing
implementation patternEvent Sourcing
Uses an ordered event log as the authoritative record and rebuilds current state by replaying it.
CQRS
architecture patternCommand Query Responsibility Segregation
Separates authoritative commands from read-optimized projections, introducing an explicit synchronization boundary.
SVOT
consumption agreementSingle Version of Truth
Aligns consumers on one definition or result; related to, but different from, locating authority.
Evidence trail
