How Feast Supports Multi-Region Deployments: A Technical Guide to Global Feature Stores

Feast enables multi-region deployments by exposing region and location parameters in every storage backend configuration, allowing offline stores, online stores, and compute engines to operate in specific cloud regions for data locality and compliance.

Feast (feast-dev/feast) is an open-source feature store designed for production machine learning workflows. When deploying feature stores across global infrastructure, organizations must ensure low-latency serving and data sovereignty compliance. Feast supports multi-region deployments through explicit region configuration in every storage backend, allowing teams to pin offline and online stores to specific geographic locations while maintaining a unified feature registry.

How Feast Configures Regional Storage Backends

Feast's architecture treats region specification as a first-class configuration property. The RepoConfig object accepts region or location parameters for each storage backend, which Feast passes directly to cloud SDK clients during initialization.

BigQuery Offline Store Location Configuration

For Google Cloud Platform deployments, the BigQuery offline store supports the location field in BigQueryOfflineStoreConfig. This field accepts GCP location strings such as US, EU, or specific regions like us-central1. According to the source code in sdk/python/feast/infra/offline_stores/bigquery.py (lines 98-102), if omitted, the store defaults to the US multi-regional location.

DynamoDB Online Store Region Settings

AWS deployments use the region attribute in DynamoDBOnlineStoreConfig to force Boto3 clients to connect to specific AWS regions or VPC endpoints. As defined in sdk/python/feast/infra/online_stores/dynamodb.py (line 64), this configuration applies to both the synchronous client and the async client (aiobotocore) that powers the feature server.

Redshift and AWS Service Region Configuration

The Redshift offline store requires a region field in RedshiftOfflineStoreConfig, ensuring the Redshift cluster resides in the chosen AWS region (sdk/python/feast/infra/offline_stores/redshift.py, line 62). Additional AWS services utilize helper functions in sdk/python/feast/infra/utils/aws_utils.py (lines 42-52), which accept an aws_region argument to propagate region settings to underlying Boto clients for Athena, S3, and other services.

Multi-Region Federated Architecture

Beyond single-region configuration, Feast supports federated deployments where multiple Feast instances share a logical registry while maintaining region-specific storage backends. As documented in docs/how-to-guides/federated-feature-store.md, organizations can deploy independent Feast stacks in different regions (e.g., us-west-2 and eu-central-1), each configured with local online and offline stores, while synchronizing through a globally accessible registry stored in CloudSQL or S3.

This architecture enables:

  • Data sovereignty: Sensitive data remains within geographic boundaries
  • Latency optimization: Online serving occurs from the nearest regional store
  • Disaster recovery: Cross-region replication provides failover capabilities

Code Examples: Configuring Regional Deployments

The following examples demonstrate how to configure Feast for multi-region deployments using Python configuration objects.

BigQuery Offline Store in EU Region

from feast import FeatureStore, RepoConfig
from feast import BigQueryOfflineStoreConfig

repo_config = RepoConfig(
    offline_store=BigQueryOfflineStoreConfig(
        project_id="my-gcp-project",
        location="EU",               # EU multi-regional location

    )
)

store = FeatureStore(config=repo_config)

Configuration reference: bigquery.py lines 98-102.

DynamoDB Online Store in US-West-2

from feast import FeatureStore, RepoConfig
from feast import DynamoDBOnlineStoreConfig

repo_config = RepoConfig(
    online_store=DynamoDBOnlineStoreConfig(
        region="us-west-2",          # AWS region for the table

        table_name_template="{project}.{table_name}",
    )
)

store = FeatureStore(config=repo_config)

Configuration reference: dynamodb.py line 64.

Federated Multi-Region Deployment


# registry.yaml (stored in a globally accessible bucket)

project: my_project
registry: "s3://my-global-registry/registry.db"

# us-west-2 instance config (feast_us_west.yaml)

online_store:
  type: dynamodb
  region: us-west-2
offline_store:
  type: redshift
  region: us-west-2

# eu-central-1 instance config (feast_eu.yaml)

online_store:
  type: dynamodb
  region: eu-central-1
offline_store:
  type: redshift
  region: eu-central-1

Each instance runs its own Feast server, but both read/write the same registry.db. Clients query the nearest regional server for low-latency feature retrieval.

Key Implementation Files

Understanding the following source files helps when debugging region-specific configurations:

File Purpose
sdk/python/feast/infra/offline_stores/bigquery.py Defines location field (lines 98-102) for BigQuery multi-regional support.
sdk/python/feast/infra/online_stores/dynamodb.py Implements region configuration (line 64) for DynamoDB clients.
sdk/python/feast/infra/offline_stores/redshift.py Enforces required region field (line 62) for Redshift clusters.
sdk/python/feast/infra/utils/aws_utils.py Helper functions (lines 42-52) propagating aws_region to Boto3 clients.
docs/how-to-guides/federated-feature-store.md Documentation for federated deployments enabling multi-region architectures.

Summary

  • Feast supports multi-region deployments by exposing region and location parameters in every storage backend configuration.
  • BigQuery uses the location field to specify multi-regional or regional GCP locations.
  • DynamoDB and Redshift require explicit region fields in their respective configuration classes.
  • Federated deployments allow multiple regional Feast instances to share a single registry, enabling global feature stores with local latency.
  • All region configurations are passed directly to cloud SDK clients during store initialization, ensuring data locality and compliance.

Frequently Asked Questions

Can I run Feast with different regions for online and offline stores?

Yes. Feast's configuration model treats online and offline stores as independent components. You can configure your online store (e.g., DynamoDB) to use us-west-2 for low-latency serving while pointing your offline store (e.g., BigQuery) to EU for data sovereignty compliance. Each store initializes its own cloud client with the specified region during FeatureStore initialization.

Does Feast support automatic failover between regions?

Feast does not provide built-in automatic failover between regional stores. However, you can implement failover logic at the application layer by configuring multiple FeatureStore instances pointing to different regions and implementing health checks. Alternatively, use the federated feature store pattern where multiple regional instances share a registry, and route requests to the nearest healthy instance using a load balancer or service mesh.

How do I configure the region for AWS Athena offline store?

The Athena offline store uses the aws_region parameter propagated through helper functions in aws_utils.py. When configuring your RepoConfig, ensure the offline store configuration includes the region field, which is passed to get_athena_data_client and other utility functions in aws_utils.py (lines 42-52). This ensures the Athena query execution occurs in the specified AWS region.

What happens if I don't specify a region in my Feast configuration?

If you omit the region or location field, Feast relies on the underlying cloud SDK's default behavior. For BigQuery, this defaults to the US multi-regional location (as defined in bigquery.py lines 98-102). For AWS services like DynamoDB and Redshift, the Boto3 client typically uses the default region configured in your AWS credentials or environment variables, which may not match your infrastructure requirements. Explicit region configuration is recommended for production multi-region deployments.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →