Regions
Where your database lives, how the region is chosen, and why it does not change afterwards.
Choosing a region
The region is picked once, when you create the project — in the dashboard's create-project flow, or via the API by listing the available regions and passing the chosen one:
curl -s -H "X-API-Key: $CAPYDB_API_KEY" \
https://capydb.dev/api/capydb/v1/clusters | jq '.clusters[] | {id, region, state}'POST /v1/projects takes the cluster_id; the project inherits that region. Each region entry also reports its capabilities — including whether point-in-time recovery is available there.
EU data residency
All capacity today is on dedicated single-tenant EU infrastructure. Your database, its preview databases, and its compute live in the region you picked. If your data-residency requirement is "EU", CapyDB satisfies it by construction rather than by configuration. If your requirement is a specific non-EU jurisdiction, we do not have a region for you today — see Security for the broader posture.
What is co-located with the project
- Preview databases are created on the same host as their project — clones stay in-region.
- Compute and storage are the same machine; there is no cross-region split to reason about.
- Backup artifacts are written to object storage off the database host (see Disaster recovery for the mechanics).
Region is fixed after creation
There is no API to move a project between regions, and the region field cannot be edited. This is deliberate honesty rather than a missing button: a "move region" toggle would really be a full data migration wearing a trench coat.
If you do need a project in a different region, the supported path is the same migration you would run between providers:
- Create a new project in the target region.
- Import from the old project's direct connection URL (run the preflight first).
- Update consumers with the new project's connection strings — they differ, since it is a new database with new credentials.
- Delete the old project when you are confident.
Latency, practically
Your database answers from its region; physics does the rest. Put latency-sensitive app servers near the region, and use the pooled endpoint so connection setup cost is paid rarely instead of per-request. For serverless platforms, choosing an EU function region puts the round trip in single-digit-to-low-tens of milliseconds territory; cross-Atlantic adds what the ocean adds.