Back office ops · Production

Netflix's Axion ML Fact Store eliminates training-serving skew and reduces offline feature regeneration from weeks to hours

The problem

Netflix's ML models train on weeks of historical data, so testing updated feature encoders required waiting weeks for feature logging to accumulate sufficient data — making experimentation slow and creating training-serving skew risk.

First attempt

Feature logging required weeks of waiting for data. ETL with normalized multi-table storage caused Spark shuffle issues at scale. Even a single denormalized Iceberg table was too slow for queries filtering hundreds of millions of rows to under a million, and bloom filters plus predicate pushdown were insufficient.

Workflow diagram · grounded in source
1
Production inference runs
trigger
“Compute applications access facts (members' viewing history, their likes and my list information, etc.) from various grpc services that power the whole Netflix experience. These facts are used to generate features using shared feature en…”
2
Facts logged to Keystone
integration
“Now we asynchronously collect all the facts and metadata into a protobuf, compress it, and send it to the keystone messaging service”
3
ETL into Iceberg table
integration
“Axion's fact logging client logs facts to the keystone real-time stream processing platform, which outputs data to an Iceberg table”
4
EVCache low-latency query tier
integration
“introducing an EVCache, a key-value store, which stores facts and indices optimized for these particular query patterns”
5
Offline feature regeneration
ai_action
“the offline feature generator uses these logged facts to regenerate temporally accurate features. Temporal accuracy, in this context, is the ability to regenerate the exact set of features that were generated for the recommendations”
6
Data quality monitoring
validation
“we have identified more than 95% of data issues early”
Reported outcome

Axion reduces offline feature regeneration from weeks to hours, EVCache queries run 3x–50x faster than Iceberg, and data quality monitoring detects more than 95% of data issues early — making Axion the de facto fact store for Netflix's Personalization ML models.

Reported metrics
Offline feature regeneration timehours compared to weeks
EVCache query speed vs Iceberg3x-50x faster
Data issues identified earlymore than 95%
Reported stack
AxionKeystoneIcebergEVCacheSparkParquetprotobufgrpc
Source
https://netflixtechblog.com/evolution-of-ml-fact-store-5941d3231762
Read source ↗

Frequently asked questions

What did this team achieve with this AI workflow?

Axion reduces offline feature regeneration from weeks to hours, EVCache queries run 3x–50x faster than Iceberg, and data quality monitoring detects more than 95% of data issues early — making Axion the de facto fact s…

What tools did this team use?

Axion, Keystone, Iceberg, EVCache, Spark, Parquet, protobuf, grpc.

What results were reported?

Offline feature regeneration time: hours compared to weeks; EVCache query speed vs Iceberg: 3x-50x faster; Data issues identified early: more than 95% (source-reported, not independently verified).

What failed first in this deployment?

Feature logging required weeks of waiting for data.

How is this back office ops AI workflow structured?

Production inference runs → Facts logged to Keystone → ETL into Iceberg table → EVCache low-latency query tier → Offline feature regeneration → Data quality monitoring.