feast-architecture

Explains Feast codebase internals, component architecture, and data flows for feature store development.

7.2k|1.4k|Updated Dec 10, 2018
One-click install
npx skills add https://github.com/feast-dev/feast --skill feast-architecture
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: feast-architecture
Source: https://github.com/feast-dev/feast/tree/main/skills/feast-architecture
Command: npx skills add https://github.com/feast-dev/feast --skill feast-architecture

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Navigating the Feast feature store codebase is difficult because its logic spans the Python SDK, registry backends, online/offline stores, a Go feature server, and a Kubernetes operator. This Skill maps every major component to its source files and explains how data flows through operations like feast apply, materialize, and get_online_features, so you can locate and modify the right code quickly.

Core Features & Use Cases

  • Component Map: Documents where key abstractions live, including FeatureStore, Registry (file, SQL, Snowflake, remote), Provider, online stores, and offline stores, with exact file paths.
  • Data Flow Traces: Step-by-step walkthroughs of feast apply, feast materialize, get_online_features, and get_historical_features from CLI entry to storage layer.
  • Extension Guidance: Explains how to add a new offline store backend, DataSource, or proto field, including pitfalls like the ProtoBytes vs LargeBinary column issue in the SQL registry.
  • Use Case: When asked how the registry stores metadata or where to add a new online store implementation, use this Skill to jump directly to sdk/python/feast/infra/registry/sql.py or the online store interface with full context.

Quick Start

Ask how feast materialize moves data from the offline store to the online store and which files implement each step.

Frequently Asked Questions about feast-architecture

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How does feast apply work internally?

feast apply parses Python files into Feast objects, diffs them against the registry via diff/registry_diff.py, updates registry metadata, and calls provider.update_infra to create or drop online store tables. The updated registry is then written back to storage.

How does Feast materialize move data to the online store?

store.materialize loads feature views from the registry, calls offline_store.pull_latest_from_table_or_query to get a lazy RetrievalJob, executes it with to_arrow, and writes results via provider.online_write_batch. It then updates last_updated_timestamp in the registry.

What registry backends does Feast support?

Feast supports file/GCS/S3 proto-blob registries, a SQL registry using SQLAlchemy, a Snowflake registry, and a remote registry over gRPC. The file backend serializes all metadata into one Registry protobuf refreshed on a TTL.

Can the Go feature server run feast apply or materialization?

No, the Go feature server only reads the registry and serves online features over HTTP or gRPC. feast apply and materialization remain Python-only operations handled by the Python SDK.

Why do large FeatureViews fail to deserialize in the SQL registry on MySQL?

Columns typed as plain LargeBinary map to MySQL BLOB with a 64 KB cap, silently truncating large protos. Feast uses ProtoBytes, which emits LONGBLOB on MySQL and MariaDB, and logs a startup warning for any narrow BLOB columns.

How do I add a new offline store backend to Feast?

Subclass OfflineStore and implement get_historical_features, pull_latest_from_table_or_query, and pull_all_from_table_or_query. Add a config class with a type Literal, register it in OFFLINE_STORE_TYPE_MAP in repo_config.py, and add a matching DataSource subclass.