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

> Learn how Feast supports multi-region deployments. Configure region and location parameters for data locality and compliance across your global feature store.

- Repository: [Feast/feast](https://github.com/feast-dev/feast)
- Tags: technical-guide
- Published: 2026-03-01

---

**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`](https://github.com/feast-dev/feast/blob/main/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`](https://github.com/feast-dev/feast/blob/main/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`](https://github.com/feast-dev/feast/blob/main/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`](https://github.com/feast-dev/feast/blob/main/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`](https://github.com/feast-dev/feast/blob/main/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**

```python
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`](https://github.com/feast-dev/feast/blob/main/bigquery.py) lines 98-102.*

**DynamoDB Online Store in US-West-2**

```python
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`](https://github.com/feast-dev/feast/blob/main/dynamodb.py) line 64.*

**Federated Multi-Region Deployment**

```yaml

# 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`](https://github.com/feast-dev/feast/blob/main/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`](https://github.com/feast-dev/feast/blob/main/sdk/python/feast/infra/online_stores/dynamodb.py) | Implements `region` configuration (line 64) for DynamoDB clients. |
| [`sdk/python/feast/infra/offline_stores/redshift.py`](https://github.com/feast-dev/feast/blob/main/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`](https://github.com/feast-dev/feast/blob/main/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`](https://github.com/feast-dev/feast/blob/main/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`](https://github.com/feast-dev/feast/blob/main/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`](https://github.com/feast-dev/feast/blob/main/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`](https://github.com/feast-dev/feast/blob/main/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.