Feature Store  ·  View 12 of 21  ·  Runtime

Critical Flow — An ETA Vector Read

Inside a user-facing request with a 250 ms total budget, of which the feature read gets 25 ms.

Editable source SVG draw.io All views
ETA model service Client SDK Serving API Read cache Online store On-demand runtime Serving logger 1. GetVector(order, store, courier) 2. gRPC, 5 groups, 180 features 3. compiled plan from local cache 4. get hot store keys 5. hit: store_orders_15m 6. BatchGetItem, 3 groups 7. values + event_ts + version 8. distance(courier, store) 9. computed value 10. age vs freshness SLO 11. group 5 unavailable 12. vector + per-feature status 13. group 5: STALE, default applied 14. 1% sampled vector Critical Flow — An ETA Request Reads a Feature Vector Total budget 25 ms client-observed. The plan cache, the batch read and the reason codes are what keeps it inside that. v 1.0 · owner Data Platform Architecture · date 2026-09

Decisions

  • The compiled plan is resolved from a local cache, never from the registry, which is what keeps the read inside its budget and lets serving survive registry loss.
  • One batch read per request across groups rather than one read per group; the fan-out is the dominant term in tail latency.
  • An unavailable group returns a reason code and the declared default, and the response says which values are which. Only a consumer-declared critical group fails the call.

Assumptions

  • Server-side p50 3 ms, p99 15 ms, p99.9 40 ms for ≤ 200 features across ≤ 5 groups; on-demand transformation adds ≤ 2 ms p99.
  • Client-observed p99 ≤ 25 ms including network.

Risks

  • On-demand transformation runs consumer-authored code inside the serving path. It buys parity on exactly the transformations most likely to skew, and it puts that code in the latency budget and the failure domain.