# Design a feature store: system design interview question

> A shared feature platform with historical correctness, consistent feature definitions, late data, and fast online reads.

Source: https://sysround.com/questions/design-feature-store
Updated: 2026-11-05


Difficulty: hard. Levels: Senior, Staff+.

## How the interviewer opens it

"Design a shared feature platform for machine learning teams. It must support offline model training and low-latency online predictions, with correct historical data and consistent feature values."

## What to clarify first

- Users and feature groups
- Data size
- Traffic and read:write mix
- Latency and training volume
- Freshness
- Historical correctness
- Consistency and availability
- Durability and retention
- Reproducibility
- Scope boundaries

## Scope of a strong answer

Core requirements:

- Register feature groups with explicit versions and schemas.
- Accept feature values and retain their history.
- Create training datasets with correct values for each example's cutoff time.
- Serve current feature values for online predictions.

Usually out of scope:

- Build a general feature computation engine.
- Train or host models.
- Support cross-region writes.
- Build a feature discovery interface.

## What interviewers probe

### Features for a past prediction

Late values and later corrections can expose information that did not exist at an example's cutoff time.

### Agreement between training and predictions

Matching feature names do not ensure matching versions, missing-value rules, or value age limits.

### Feature arrival and failures

Two stores must converge despite partial failures, retries, and updates that arrive out of order.

### Prediction reads at peak load

Each request needs five groups within 10 ms, while popular entities and failed dependencies can increase tail latency.

## Common mistakes

- Join training labels to current feature values.
- Use event time without acceptance time for historical correctness.
- Compute the same feature separately without a shared versioned contract.
- Assume one successful write proves that both stores contain the update.
- Let late updates replace newer online values.
- Treat eventual consistency as permission to return values of unlimited age.

## The bar by level

- **Senior:** Defines event time, acceptance time, and revision order. Provides complete dataset snapshots, immutable feature contracts, durable replay, and bounded online read paths.
- **Staff+:** Defines limits on historical knowledge and exact replay. Designs version migration, recovery, capacity isolation, and explicit behavior when freshness conflicts with availability.

Practice this question with an AI interviewer: https://sysround.com/practice/new?problem=ml-feature-store


---
SysRound (https://sysround.com) is an AI practice tool for system design interviews. It has a voice or typed AI interviewer and a shared whiteboard. At the end, you get feedback on each skill and a model answer. The AI feedback can be wrong.
