Residency
Estokad runs per-country, not "EU region." Customers pick where their data lives at signup; provisioning happens only after the residency module is paid for. The chosen region binds every byte of data — Postgres rows, asset blobs, cache state, audit logs.
Available regions
| Region | Country | Provisioned in |
|---|---|---|
| eu-fra-1 | Germany | Default — included in the platform fee |
| eu-bru-1 | Belgium | Belgium residency module (€499/mo) |
| eu-par-1 | France | EU residency module (€199/mo, France-eligible) |
| eu-ams-1 | Netherlands | EU residency module |
| eu-lux-1 | Luxembourg | EU residency module |
| ch-zrh-1 | Switzerland | Switzerland residency module (€699/mo) |
The Sovereign tier includes a customer-dedicated region (e.g. AWS Outpost, Scaleway sovereign cloud) at €1,299/mo on top of the platform fee.
How the binding works
Each region is a separate Postgres cluster + Object Storage bucket + Redis instance + Bunny.net pull zone. There is no cross-region replication and no fallback to a "primary" region. If a region is offline, the workspaces in it are offline — by design. We do not ship customer data to a different jurisdiction to keep an SLA.
DNS resolution is done at the edge: api.estokad.com resolves to the regional gateway nearest the workspace. A Belgian customer's request never crosses the border.
Daily residency proofs
Once a day, every region's workers run a residency check:
- Inventory every active table, bucket, and queue
- Read each entry's region tag
- Sign a proof with the region's KMS key
The proofs land in /settings/compliance/residency-proofs as a list, each downloadable individually. The DORA pack bundles the last 90 days automatically.
The proof format is JSON with a JCS-canonicalised body and a JWS signature from the region's KMS key. Verification is a one-liner with any standard JWT library; the public key is published at https://api.estokad.com/.well-known/residency-keys.json.
What can move
Two things cross regions:
- Control plane data — workspace metadata, billing, user accounts. Lives in
eu-fra-1for all tenants. The control plane has no customer content; it has only the routing information the data plane needs. - Aggregate logs sent to Grafana Cloud (EU instance) — request counts, latencies, error rates. Never includes content body. Grafana Cloud's EU instance is contractually committed to EU residency.
Both are documented in the sub-processor register so a regulator sees exactly what crosses what boundary.
Switching regions
Switching is a migration, not a config change. You request the move through /settings/compliance/residency; we provision the destination region, copy your data with end-to-end attestation, run a parallel period for verification, then cut over. The whole process takes 1-3 days for a typical workspace, longer for terabyte-scale ones.
The exit plan covers the same logistics in the other direction — getting your data out of Estokad entirely.