advanced25 min studyLesson 690 in Engineering

Feature lineage and model-consumer audits

Trace versioned source defects to potentially affected models, then use temporal usage evidence to distinguish reachability from observed impact.

On this page

What you’ll understand

  • Build lineage across sources, transformations, feature versions, datasets, and deployed model consumers.
  • Compute a deduplicated set of potentially affected downstream models.
  • Distinguish registered dependency evidence from actual request-time exposure and sampling coverage.

When a source column is wrong, the useful question is not only which feature job read it. You need to know which feature revisions, training datasets, model artifacts, and deployed prediction paths could have used the affected values. Lineage provides the dependency map. A consumer audit adds versions, time ranges, resolved values, and observed usage so the team can scope a correction without confusing possible exposure with proven impact.

Record versioned dependencies at the right granularity

Connect source dataset identity and snapshot, relevant fields, transformation code and artifacts, feature definition and materialization generation, training dataset release, model artifact, and serving deployment. Distinguish structural lineage from one execution’s observed inputs and outputs. Dynamic feature selection, request-time transformations, side inputs, and fallback paths can introduce dependencies absent from a static registry. Use stable namespace-qualified identifiers so similarly named tables, feature views, and model versions do not collapse into one misleading node.

OpenLineage 1.53 models datasets, jobs, and runs with explicit identities and extensible facets. Feast exposes an OpenLineage integration for supported operations, but an integration does not prove every consumer or external transformation is instrumented. Add application-level relationships to model artifacts and request resolution where necessary, and validate that events arrive with the expected completeness. A green job-run event describes an operation’s reported state, not the truth of every upstream value or a guarantee that no undocumented model read it.

Mpotential=M∩Reach⁡G+(Faffected)\mathcal M_{\rm potential}=\mathcal M\cap\operatorname{Reach}^{+}_{G}(\mathcal F_{\rm affected})
G is the recorded directed versioned dependency graph, F_affected a set of affected feature-version nodes, and M the model nodes. Reachability yields potential downstream consumers under graph completeness assumptions; it does not by itself prove those versions were served during the incident.↔ Scroll wide equations horizontally.

Combine graph reachability with temporal usage

A source defect may affect only a partition, entity class, time interval, or transformation revision. Intersect that scope with materialization runs, model-training snapshots, and request-time feature resolutions. A model can be reachable but unaffected in a particular incident because it used an earlier clean generation or made no requests during the bad interval. Conversely, a model absent from an incomplete catalog can still have consumed the data. Preserve the distinction between confirmed exposure, potential exposure, and unobserved consumers rather than using an empty trace result as proof of nonuse.

Training impact and serving impact also differ. A corrected online feature does not remove its influence from a model trained on a contaminated dataset. A model rollback does not necessarily fix ongoing bad feature serving for other consumers. An audit should name the required actions separately: feature correction, affected dataset rebuild, reevaluation, retraining where justified, and deployment changes. Retain immutable release and run identifiers so a later investigation can reconstruct the evidence even after active registry definitions or model routes change.

Coverage⁡=∣Cinstrumented∣∣Cknown∣\operatorname{Coverage}=\frac{|\mathcal C_{\rm instrumented}|}{|\mathcal C_{\rm known}|}
This fraction counts distinct instrumented consumers among a declared finite nonempty known set. It describes coverage of that inventory, not unknown consumers, correctness of emitted lineage, request sampling completeness, or the probability that an incident had no impact.↔ Scroll wide equations horizontally.

Rehearse an impact query and state its blind spots

Choose a synthetic bad source revision and follow it through a test materialization, dataset, model, and request. Check whether the audit finds all expected consumers, deduplicates models reachable by multiple paths, respects time filters, and identifies intentionally omitted instrumentation. Keep access controls and sensitive identifier handling appropriate for the recorded metadata. Validate lineage edges against actual code and usage periodically; old declarations can remain after a consumer is retired, while a new direct database read can bypass the registry altogether.

The probability instrument illustrates why sampled requests can miss exposure. Reset, set both p=0.2 and n=10, predict two affected requests on average and zero-affected probability 0.8¹⁰, then Play or Step. Separately Reset, set both p=0.2 and n=20, predict mean four and zero-affected probability 0.8²⁰, then Play or Step. These exact iid binomial probabilities assume a known common exposure chance and independent sampling. The display neither discovers lineage nor samples actual requests, and correlated traffic or unknown affected fractions invalidate that simple coverage interpretation.

Deduplicate potential consumers and inspect usage

Affected source A feeds feature versions F1 and F2. F1 feeds models M1 and M2; F2 feeds M2 and M3. During the verified bad serving interval, complete usage logs show 1,000 affected-version requests for M1, 2,000 for M2, and none for M3.

  1. The dependency graph identifies three distinct potentially affected models: M1, M2, and M3. M2 has two paths but should not be counted as two model artifacts.

  2. The stipulated complete interval logs establish observed affected-version serving for two models and 1,000+2,000=3,000 requests. M3 is graph-reachable but has no serving exposure in that interval under those logging assumptions.

  3. This serving result does not decide whether M3 trained on affected history or whether an uninstrumented consumer exists. Audit training snapshots and graph completeness separately before narrowing the overall remediation scope.

The result

Lineage reachability scopes candidates; versioned temporal usage refines exposure. Neither evidence source should be silently substituted for the other.

Explore the model

Interactive lab

Interactive lab · probability

A request sample can miss known-rate exposure

Reset, set both p=0.2 and n=10, predict mean two and zero affected probability 0.8¹⁰≈0.10737, then Play or Step. Separately Reset, set both p=0.2 and n=20, predict mean four and zero affected probability 0.8²⁰≈0.01153, then Play or Step. This exact iid distribution performs no lineage discovery or actual request sampling.

A request sample can miss known-rate exposureThese are exact binomial probabilities for independent trials with one fixed success probability. Playback tours the distribution; it does not resample outcomes. Current readings: Mean · np: 5; Variance · np(1−p): 2.5; Total probability: 1. All parameters are adjustable with the labeled controls below.03581000.070.150.220.3Successes kP(X = k)k = 0 · P = 9.77e-4
Exact probabilityHighlighted outcomeMean np
Mean · np
5
Variance · np(1−p)
2.5
Total probability
1
t = 0 s

These are exact binomial probabilities for independent trials with one fixed success probability. Playback tours the distribution; it does not resample outcomes. Parameter changes pause playback and recompute the model at the current elapsed time. Reset restores both parameters and returns time to zero. Playback starts paused. Adjust either parameter, then choose Play or Step.

Look forReport inventory, instrumentation, temporal, and sampling limits when scoping model impact.

Check your understanding

A model is reachable from a defective feature revision in the lineage graph. What does that directly establish?

Try it yourself

A known inventory contains twenty-five model consumers, and twenty have verified lineage instrumentation. Compute inventory coverage. Does that percentage establish that no other consumers exist?

Take a moment to make a prediction or work it out on paper. Open a hint when you need one.

Give me a hint

The denominator is the known inventory, not an independently proven universe.

Compare with the solution

Coverage is 20/25=0.8, or eighty percent of the known inventory. It does not establish that the inventory includes every consumer or that emitted edges and sampled request evidence are complete. Investigate the five known gaps and validate potential direct or dynamic accesses beyond the catalog.

Take it with you

  • Record source-to-feature-to-dataset-to-model dependencies with versions.
  • Refine potential graph reachability using actual temporal usage evidence.
  • Audit training and serving separately and state instrumentation blind spots.

Read further

Original sources and deeper explanations to follow at your own pace.

Optional progress, saved in this browser when available. Revisit any lesson at any time.

Lesson not marked complete.