Feature Store  ·  View 09 of 21  ·  Data

Feature Data Flow

From an emitted event to a served value, and the one loop that closes back on itself.

Editable source SVG draw.io All views
Emit Order events Courier telemetry Warehouse tables Land Stream log Kinesis, 7 days Raw landing S3, as given Compute Stream aggregates Flink, 1 m – 24 h Batch transforms EMR Serverless Contract guard quarantine Materialise Offline store event + ingest ts Online store latest value + ts Serve Vector read p99 15 ms Point-in-time join as-of spine Prove Serving log 1% sample Skew replay nightly verdict pass rebuild sample as-of compare Feature Store — Data Flow External / third party Queue / topic Data store Application we own Security / platform batch event / async The only loop closes left: sampled serving vectors are replayed against the offline path to prove the two agree. v 1.0 · owner Data Platform Architecture · date 2026-09

Decisions

  • Raw events land immutably before anything is computed from them, so a fixed transformation can re-derive history instead of losing it.
  • The contract guard sits between compute and materialisation, not after it: a batch that fails its schema or distribution check is quarantined rather than published, and the last good values keep serving.
  • The online store is written from the same computation that writes offline for streaming features, and materialised down from offline for batch ones — freshness where it is needed, provenance where it is affordable.

Assumptions

  • 2.6 billion feature values written offline per day; 1.4M events/second into materialisation at peak.
  • The stream log retains 7 days, which sets the ceiling on every replay-based recovery.

Risks

  • Quarantine protects correctness at the cost of freshness. A source that drifts for a day leaves a group stale for a day, which is the right trade and still a visible outage to the models reading it.