What is Feature Store?
A feature store is infrastructure that computes, stores, and serves model input features from a single definition, so that training and live serving use identical logic and history is reconstructed correctly.
The problem it exists to solve
Consider a feature like 'customer's average order value over the last 30 days'. In training, it is computed in SQL over a warehouse. In production, it must be computed in application code within a few milliseconds. Two implementations, written by different people at different times, of the same idea.
They diverge. One counts cancelled orders, the other does not. One uses calendar days, the other rolling 720 hours. The model was trained on one definition and is served the other, so accuracy quietly degrades with no error anywhere. This is training-serving skew, and it is among the most common and hardest-to-diagnose production failures in machine learning.
What it provides
One definition, two paths. A feature is defined once and served both as a historical batch for training and as a low-latency lookup for inference. This is the core value; everything else is secondary.
Point-in-time correctness. The subtle and important part. To build a training row for an event on 3 March, every feature must reflect what was known on 3 March — not today's value. Naively joining current aggregates onto historical events leaks the future into training, and produces a model that validates beautifully and fails in production. Doing these 'as-of' joins correctly by hand is genuinely difficult, and getting it for free is often the strongest argument for adopting a store.
Reuse and discovery. Features become shared assets across models rather than being re-derived in every project, with lineage and ownership attached.
Architecturally this is usually an offline store (a warehouse holding full history) plus an online store (a low-latency key-value store holding current values), fed by shared transformation definitions.
When it is overkill
Feature stores add real complexity: another system to operate, another failure mode, and a materialisation pipeline to keep healthy. For a single model with features computed in one place, they are not worth it.
The signals that you have outgrown doing without one: several models sharing features, features that are expensive to compute and recomputed redundantly, a training-serving skew incident that has already cost you, or a need for real-time features where the online lookup path genuinely differs from batch.
If none of those apply, you can capture most of the benefit far more cheaply. Define feature transformations in a single shared library imported by both the training pipeline and the serving code, and write tests asserting the two produce identical output on fixed inputs. That eliminates skew — the main risk — without adopting a platform. Add the platform when the number of models, not the ambition of one, makes the coordination cost real. This is the same sequencing point made in MLOps: practice before platform.
- Kills training-serving skew — one feature definition used by both paths
- Point-in-time joins — training rows reflect only what was known then
- Offline plus online — full history for training, fast lookups for serving
- Justified by model count — shared library and tests are enough for a single model
More on Feature Store.
What is training-serving skew?
Training-serving skew is when the features a model receives in production differ from those it was trained on, because the two are computed by separate implementations that have drifted apart. It is dangerous because nothing fails visibly — the service returns normal responses while accuracy silently degrades. The reliable fixes are a shared feature definition used by both paths, plus tests asserting both produce identical values for fixed inputs.
Can I use a data warehouse instead of a feature store?
For training, yes — a warehouse is where historical features naturally live. The gap is serving: warehouses are not built for millisecond single-row lookups, so real-time inference needs a low-latency online path, and once you have both you must keep their logic consistent. If your predictions run in batch rather than in real time, a warehouse plus a shared transformation library genuinely can be sufficient.
Related terms.
MLOps
MLOps is the set of practices for deploying, monitoring, and maintaining machine learning models in production, extending DevOps t…
ReadInference
Inference is the act of running a trained model on new input to produce a prediction, and because it happens on every request it u…
ReadTraining Data
Training data is the set of examples a model learns from, and its coverage, label quality, and representativeness set a hard ceili…
ReadModel Drift
Model drift is the gradual loss of a deployed model's accuracy because the statistical relationship it learned no longer matches t…
ReadNeed this built?
Applying this to a
real system?
We build and ship production machine learning. If feature store is part of a problem you are working on, tell us about it.
Start the conversationor write to us at [email protected]