Initialize a Feast feature store: feast init my-feature-store and edit feature_store.yaml to configure the offline store (e.g., BigQuery, Snowflake, file) and online store (e.g., Redis, DynamoDB, SQLite)
Define feature views and entities in Python files under the feature repository directory, specifying the data source, entity join key, and feature columns with their value types
Apply the feature definitions to register them with the store: feast apply — this validates and persists the schema
Materialize features from the offline store to the online store for a time range: feast materialize <start_datetime> <end_datetime> — datetimes in ISO 8601 format
For incremental updates in production use: feast materialize-incremental <end_datetime> — this materializes only new data since the last materialize call per feature view
Retrieve features for online serving: store.get_online_features(features=['my_feature_view:feature_a'], entity_rows=[{'entity_id': 1}]).to_dict()
Known gotchas
Materialization reads from the offline store using the event_timestamp column to filter by time range; if the source table lacks this column or it has a different name, materialization fails silently or returns no data
feast materialize-incremental tracks the last materialization time per feature view in the registry; if the registry is reset or recreated, incremental materialize will re-materialize all historical data up to the end time
Online store TTL is set per feature view via the ttl parameter; features older than the TTL are evicted from the online store and get_online_features returns None for those rows rather than raising an error
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp