Barton Design System

Data Model Patterns

Render a data model as an inspectable visual, not prose. Verified relationships look different from planned and gap ones. Never draw a join, parent, route or state because it seems plausible.

You are hereData Model Patterns30kBranchRepairsource: sample placeholder schema — not a source of truthnext: bind a real schema read

Data-flow map

sample placeholder data

Data-flow map

  • Verified
  • Planned
  • Gap / unproven
1:1proposedunprovenread-onlyTABLEintake_rawVERIFIEDTABLEroster_importWARNINGADAPTERnormalizeVERIFIEDADAPTERlegacy bridgeGAPVIEWops_currentVERIFIEDSURFACECockpit readLIVE
SAMPLE placeholder data — illustrates edge styling only. Not a Barton schema.

Declared edges

Draft

6

src: sample map

Verified

Verified

3

src: sample map

Planned

Build

1

src: sample map

Gap / unproven

Gap

2

src: sample map

Edge register

every edge states its basis

Sample edge register — a relationship with no basis is a gap, not a dotted guess
FromToConfidenceBasis
intake_rawnormalizeSourcedcolumn contract confirmed in sample schema
roster_importnormalizePlannedproposed; not implemented
roster_importlegacy bridgeNo sourceno confirmed join key
normalizeops_currentSourcedview definition in sample schema
legacy bridgeops_currentNo sourceunproven; do not rely on it
ops_currentCockpit readSourcedread-only surface binding

Silos, adapters and read surfaces

sovereignty

Rules

Boundary contract

  • Sovereign silos stay separate. Cross-domain data crosses only through a declared trunk, adapter or seam.
  • A dashboard is a read surface, not a data store — show provenance and adapter boundaries instead of inventing backend truth.
  • Keep CTB and source data read-only unless Dave explicitly asks to edit it.
  • Unknown means gap. Gap never green.

What this page is based on

  • Barton CTB contractSourced· ctb-contract.md
  • Design system referenceSourced· design-system.md
  • Domain skin values for KiddosNo source· not supplied
  • Mission Control dark skinPlanned· planned

Map input shape

caller declares everything

DataFlowMap props

<DataFlowMap
  nodes={[
    { id: "src.intake", label: "intake_raw", kind: "table",   state: "verified", column: 0 },
    { id: "adp.norm",   label: "normalize",  kind: "adapter", state: "verified", column: 1 },
    { id: "srf.read",   label: "Cockpit",    kind: "surface", state: "live",     column: 2 },
  ]}
  edges={[
    { from: "src.intake", to: "adp.norm", kind: "verified" },
    { from: "adp.norm",   to: "srf.read", kind: "planned", label: "proposed" },
    // omit the edge entirely when nothing supports it, or mark kind: "gap"
  ]}
  caption="Sample placeholder data — not a source of truth"
/>