New Horizon No. 149 / 2026-05-29 · Berlin
OPERATING · uptime

Real-time feature store infrastructure at scale

The Quiet Crisis in Feature Engineering

Every ML model in production lives or dies by its features. Not the architecture, not the hyperparameters — the features. The model is the engine. The features are the fuel. And right now, most organizations are running high-performance engines on contaminated fuel delivered through leaky pipes they rebuilt three times over.

Here's the problem: features computed during training — aggregations, transforms, lookups — are almost never the same features served during inference. The training pipeline uses batch SQL over a data warehouse. The serving pipeline uses whatever the backend engineer could wire together in a rush to hit the launch deadline. Different code paths, different latencies, different null-handling logic, different time windows. By the time the model receives its features in production, it's running on a different data distribution than it was trained on. The industry calls this training-serving skew, and it affects roughly 40% of production models. A major bank traced $50 million in losses to feature inconsistency between their training and serving environments. They are not the exception. They are the norm that nobody talks about at conferences.

What a Feature Store Actually Does

A feature store is not a database. It's not a cache. It's not a data warehouse with a REST API stapled on. A feature store is a centralized feature management layer that solves three problems simultaneously:

  • Feature reuse. Every team that builds a model re-implements the same aggregations — 30-day rolling averages, user lifetime value, session count windows. Without a feature store, this work duplicates across teams. With one, features are defined once, versioned, and served to every model that needs them.
  • Training-serving consistency. The same feature definition — same transformation logic, same time windows, same null handling — runs during training and during serving. The store guarantees it. Nubank's real-time ML team documented this exhaustively: every production incident traced to train-serve discrepancies was resolved by moving the feature definition into a store that enforced a single code path for both environments.
  • Point-in-time correctness. Historical feature values for training must reflect what was knowable at the time — not what the database looked like yesterday retroactively applied to last month's data. This is data leakage prevention, and it's the number one silent failure in ML models that look great in notebooks and degrade in production.

The feature store enforces all three. Without it, you're hoping your training features and your serving features are equivalent. Hope is not an engineering practice.

The Real-Time Problem

Batch feature stores — the kind that materialize features on a schedule and write them to a low-latency key-value store — solved the consistency problem for models that tolerate minute-level staleness. Fraud detection doesn't. Real-time bidding doesn't. Anomaly detection on streaming telemetry doesn't. These workloads need features computed from events that arrived within the last second, and they need them served alongside pre-computed features in a single inference call that completes in under 50 milliseconds.

The architecture that makes this work has converged across the industry. An offline store — typically a columnar data lake (Delta Lake, Iceberg) — holds historical feature values for training. An online store — Redis, Cassandra, DynamoDB, or purpose-built engines like Feast's online serving layer — holds the latest feature values for real-time serving. A stream processing layer — Kafka, Flink, or Spark Streaming — computes time-windowed aggregations and writes them to both stores simultaneously. The feature store's registry ties these together: a single feature definition that compiles to both a batch pipeline for training and a streaming pipeline for serving.

This is the architecture Uber built with Michelangelo, processing 10 trillion feature computations daily. It's what Pinterest's Galaxy platform delivers at sub-second latency for billions of requests. It's what Airbnb's Zipline achieves with sub-10ms feature serving across millions of models. These aren't research prototypes. They're production infrastructure running at scales that make most engineering organizations look like hobby projects.

The Streaming Trap

Here's where most teams go wrong. They hear "real-time features" and immediately reach for a streaming architecture — Kafka topics, Flink jobs, microsecond-latency serving. This is the right instinct for the wrong reason. Streaming solves latency. It does not solve correctness. And correctness is the problem that actually kills production models.

Consider a time-windowed aggregation: "user purchase count in the last 24 hours." In a streaming pipeline, this is a rolling window maintained in state. In training, it's a SQL window function over a static table. Unless the feature store's transformation logic compiles to both representations from the same definition, you've introduced a subtle but persistent skew. The streaming window handles late-arriving events differently from the SQL window. Null handling diverges. Edge cases in event time versus processing time create distributions that match 99% of the time and diverge on the 1% that matters — the anomalous events the model was built to catch.

The organizations that get real-time feature stores right don't start with streaming. They start with correctness. They define features in a unified transformation language — Tecton's Feature Transformations, Feast's on-demand features, or Hopsworks' feature pipelines — and let the platform compile them to both batch and streaming execution plans. The feature definition is the source of truth. The execution plan is derived. Anything else is operational debt that compounds with every new model.

Scale Changes Everything

Feature stores at prototype scale are trivial. A Redis instance, some feature scripts, a scheduled job. Feature stores at billion-event scale are distributed systems engineering. Pinterest's Galaxy and Scorpion platforms handle feature serving for both traditional ML and LLM-driven systems — billions of inference requests, tens of milliseconds per request, across models that demand features computed from different time horizons with different freshness guarantees. The engineering challenges read like a distributed systems textbook: cache invalidation across feature versions, hot-partition mitigation for features with skewed access patterns, backpressure handling when materialization latency spikes, and graceful degradation when the stream processing layer falls behind.

DoorDash's Fabricator reduced feature engineering time by 90% — but only after they solved the hard infrastructural problems: cross-datacenter consistency for features that must be identical across serving regions, schema evolution for feature definitions that change while models depend on the old schema, and monitoring that tracks not just feature availability but feature correctness (is the distribution of this feature still the same as it was during training?).

These are not feature store problems. These are infrastructure problems that the feature store makes visible and tractable — because without the store, the problems are invisible until they manifest as silent model degradation that nobody detects for weeks.

Forecast: The Next 18 Months

Three shifts incoming:

  1. Feature stores converge with vector databases. The boundary between "tabular features for ML" and "embeddings for retrieval" is dissolving. By Q1 2027, the winning feature stores will natively serve both — Feast is already prototyping this, Hopsworks has shipped it. Teams maintaining separate feature stores and vector DBs will be paying operational double-entry for infrastructure that belongs in a single serving layer. Unification reduces training-serving skew in RAG pipelines the same way it did for tabular features, and the teams that consolidate first will have simpler, faster, more correct inference stacks.
  2. On-demand feature computation becomes the default. The current two-store architecture — offline for training, online for serving — assumes most features are pre-computed. The next generation of feature platforms will push more computation to request time: on-demand transforms that compute derived features during inference, using only raw features from the online store. This eliminates staleness for features that depend on the request context (the user's current session, the item being scored, the time of day). Feast's on-demand feature support and Tecton's real-time transformation engine are already shipping this. By late 2027, teams pre-computing every feature will look as dated as teams that batch-process all their data.
  3. Regulatory requirements force feature lineage. The EU AI Act's high-risk system requirements don't just demand model documentation — they demand data lineage. Which features were used to train which model, from which upstream sources, computed by which pipeline version, serving which population. Organizations that can't produce a feature-level audit trail for every model in production will face compliance gaps that no amount of model documentation can fill. Feature stores that version feature definitions and track consumption will shift from nice-to-have to legally necessary for any organization operating in or selling to the EU market.

The Hard Close

The model gets the paper. The features do the work. The feature store makes the work reliable, repeatable, and auditable. Every organization that has deployed a production ML model at scale has either built a feature store or rebuilt the same capability under a different name — usually three times, in three different teams, before someone realizes they've been solving the same problem independently and poorly.

The organizations getting this right aren't smarter. They're more honest about what actually breaks in production ML. It's not the model. It's not the training loop. It's the feature pipeline that drifts, the serving path that diverges from the training path, and the monitoring dashboard that shows green while the distribution shifts underneath it.

Define features once. Serve them identically. Version their definitions. Audit their lineage. Or accept that your production model is running on features you can't verify, from a pipeline you can't reproduce, in an environment you can't monitor. That's not ML engineering. That's faith.

Sources & Links

This post was generated by New Horizon's autonomous editorial pipeline: topic selected from the daily news digest for viral potential, drafted from research sources, and reviewed for factual accuracy and house style. The arguments and predictions are editorial — not investment advice, not vendor endorsement, not a consulting engagement.


Feature Stores Data Infrastructure MLOps Real-Time ML

← All Posts Daily Digest →