Skip to content
About
Main content

What data modeling forbids

What the layer forbids

Six things this mechanism will not give you, at any price:

  1. You cannot recover a grain you did not store. is the one irreversible operation in the stack.
  2. You cannot sum a measure across a dimension it is not additive over. This is arithmetic, not convention.
  3. You cannot join across grains without either an allocation rule or double counting. And the allocation rule is unverifiable.
  4. You cannot answer both as-was and as-is from one stored version. This is information-theoretic, not an implementation gap.
  5. You cannot centralize meaning retroactively without restating history. By the time the divergence is visible, consumers have built on the variants.
  6. No schema encodes agreement. A model is the residue of a negotiation, never a substitute for one.

Escapes and their prices

EscapeBuysPays
Atomic every future question stays openstorage linear in events, aggregation per query
SCD2 / versioned joinsunbounded versions, surrogate machinery, late-arrival rewrites
Type 4 bounds version explosion on volatile attributesan extra join and a split vocabulary
Bridge + weightsadditive many-to-many rollupsan unverifiable allocation baked into a
Vault / anchor ()schema resilience, source attribution, parallel loadsread-side complexity; the is still required
/ wide marts ()zero-join consumptiongrain lock-in, rewrite on , table proliferation
one definition, enforced additivitya query compiler plus a governance bottleneck
retroactive new projections, immutable event semantics, no canonical state
no conformance negotiationevery question is a temporal self-join
Medallion boundaries at trust changes3× storage, summed latency, worthless without published guarantees
identity without a shared keythreshold-dependent counts, restatement on every merge