Chapter 1.5 — Feature engineering and feature stores¶
🎯 Objective¶
Treat features as product artifacts, not as a technical detail.
🧠 Concept¶
A feature in production has:
- a definition (computational logic);
- a schema (type, nullability, range);
- an owner;
- a freshness SLA;
- a contract with consumers;
- versioning;
- monitoring.
A feature store (Feast, Tecton) separates:
- Offline store — used for training and backfill.
- Online store — used for low-latency inference.
Consistency between the two is the most common source of subtle bugs (point-in-time correctness).
🏗️ Patterns¶
- Point-in-time correctness — features as of the event time, not the query time.
- Controlled backfill — recomputation of historical features.
- Lineage — which feature derives from which.
🚨 Failure modes¶
- Training with a current snapshot and serving with a stale feature.
- Defining a feature in two places (notebook and production) and letting them diverge.
- A feature with subtle temporal leakage.
🧰 Related practical example (planned)¶
EX-ML-02— a minimal feature store with Feast in local mode.
📌 Checklist¶
- [ ] Do features have a single, versioned definition?
- [ ] Is there parity between offline and online?
- [ ] Is there lineage and ownership?
📚 References¶
- Feast — Point-in-time joins: https://docs.feast.dev/getting-started/concepts/point-in-time-joins
- Feast —
get_historical_features: https://docs.feast.dev/reference/offline-stores - Tecton — Feature Store concepts: https://docs.tecton.ai/docs/introduction