Typed sinks and edges for a governed data kind, so privacy and erasure are a model walk.

Compliance data-flow model (typed sinks and edges for privacy reasoning)

Intent — Model where data of a governed kind can flow as a typed graph — the sinks that hold it, the edges that move it between them — so a question like "where does a user's personal data land, and can we erase all of it?" is answered by walking a declared model, not by grepping the codebase and trusting the result. A data category with a sink the model doesn't know about, or an edge into a sink no erasure path covers, is a build finding rather than a compliance gap discovered under audit (our instance: a typed sink-and-edge registry over the personal-data flows, paired with erasure and information-flow policies an evaluator checks against it).

SummaryTyped sinks and edges for a governed data kind, so privacy and erasure are a model walk.
TargetBridge · System models
Formtyped-ir
Movepackage — a constraint shipped with its sensors
Modelis-a-model — a structured model you check a system property against
EnforcementHard (deterministic) — the declared sinks and edges are reconciled against the real storage and transfer sites, and a policy evaluator checks properties (every sink erasable, no edge into an uncovered sink) over the graph
Derivationmodel-from-code — the sink-and-edge graph is reconciled against the real storage and transfer sites

Its place in the environment — a variant / known-use of Executable Source of Truth, under KNOW · Maintain authoritative system knowledge. Preserved here for its technical texture; the construction kit shows how it folds.

Motivation — the failure it kills

Privacy and erasure obligations are about where data goes, and that knowledge is scattered across every module that writes a row, uploads a file, or forwards a payload to a third party. Asked "erase everything we hold about this user," a team without a model answers by memory and search: someone lists the tables they can think of, greps for the obvious writes, and misses the cache, the log sink, the analytics stream, the vendor the data was forwarded to two releases ago. The miss is invisible — the erasure runs, reports success, and leaves data behind in a sink nobody remembered. The same blindness hides an information-flow violation: personal data reaching a sink it was never meant to touch, because no one enumerated the sinks or the edges between them. The obligation is real and the substrate for reasoning about it is folklore.

Why it's not just a list of tables

A list of the databases you store in is not the model, because the failures live in the parts a table list omits: the caches, the queues, the log streams, the third-party transfers, and above all the edges — which sink feeds which. The data-flow model is a graph, and its edges are what let an evaluator ask a property no flat list can express: "is there any path by which category-X data reaches a sink with no erasure coverage?" A list answers "what tables exist"; the graph answers "where can this data end up, transitively." The model is also typed by data category and sink kind, so the same evaluator checks several policies — erasability, permitted-flow, retention — over one graph rather than each being a separate hand-audit. And because the graph is reconciled against the real write and transfer sites, a new sink added in code without a model edge reddens the gate; a hand-kept list simply omits it and stays quietly wrong.

Mechanism

Prerequisites

Consequences & costs

Known uses

Related mechanisms

Governed by

The mechanisms that hold this model true — inverted from their Governs edges at build time, never hand-written. A direct governor names this model; a trunk mechanism governs every model.