Setting up Feature Store (Feast, Tecton) for feature management
The Feature Store solves one of the most pressing problems in production ML: the desynchronization of features between training and inference (training-serving skew). When a data engineer calculates a feature one way in Jupyter, and a backend developer calculates a feature another way in production code, the model degrades silently, and the cause is extremely difficult to pinpoint.
Feature Store Architectural Components
Any Feature Store consists of two repositories:
Offline store — for training models. It stores historical feature values with timestamps. Typically, these are BigQuery, Redshift, Snowflake, or Parquet files in S3. It supports point-in-time correct joins — this is critical to prevent future data leakage when preparing the training set.
Online store — for real-time inference. Stores only the latest feature values with a query latency of <10ms. Redis, DynamoDB, Cassandra, or Bigtable are used.
Feast: open-source version
Feast is the most widely used open-source Feature Store. Configuration includes:
- Defining data sources (BigQuery table, Kafka topic, files)
- Description of Feature Views in Python code:
from feast import FeatureView, Field, FileSource
from feast.types import Float64, Int64
user_stats = FeatureView(
name="user_stats",
entities=["user_id"],
ttl=timedelta(days=7),
schema=[
Field(name="purchase_count_7d", dtype=Int64),
Field(name="avg_order_value", dtype=Float64),
Field(name="days_since_last_purchase", dtype=Int64),
],
source=FileSource(path="s3://bucket/user_stats.parquet"),
)
- Setting up materialization—the scheduled synchronization process between offline and online stores
- Integrating the SDK into the training and inference code
The materialization schedule is configured via Airflow, Prefect, or the built-in scheduler:
feast materialize-incremental $(date +%Y-%m-%dT%H:%M:%S)
Tecton: enterprise version
Tecton provides a managed Feature Store with additional capabilities:
- Streaming features — calculation of features from Kafka/Kinesis in real time with latency <100ms
- On-demand features - calculation of features at the time of a request based on the context (for example, features that depend on the user's current request)
- Automatic monitoring of drift signs
- Feature lineage - tracking which models use which features
A typical Tecton use case is a bank where fraud scoring indicators need to be calculated based on the last 5 minutes of transactions in real time.
Implementation process
| Week | Tasks |
|---|---|
| 1 | Audit of existing features, selection of offline/online storage |
| 2 | Installing and configuring Feast/Tecton, first Feature View |
| 3 | Migration of 20-50 key features, materialization setup |
| 4 | Integration into the training pipeline and inference service |
| 5-6 | Monitoring, documentation, team training |
Post-implementation metrics
- Training-serving skew: reduced to zero for migrated traits
- Time to prepare a new training sample: from several hours to 5-15 minutes
- Reuse of features between teams: 40-60% of features of new models are already in the store
- Latency of obtaining features for inference: p99 < 10 ms when using Redis online store
Choosing between Feast and Tecton
Feast is suitable for teams with their own infrastructure, a DevOps budget, and agility requirements. Tecton is for enterprises where streaming feature support and a ready-made SLA are critical. Feature Stores also exist as part of cloud platforms: Vertex AI Feature Store (GCP), SageMaker Feature Store (AWS), and Databricks Feature Engineering.







