Jurisdictions
D1, KV, R2, Durable Objects and Workflows can be locked to eu, us or fedramp. Data runs and is stored only there, even when the guest is on the other side of the world. The lock is set at creation and cannot be changed afterwards.
Machine room
The site decides where its data lives.
Cloudflare’s network answers from the data centre nearest the guest, anywhere in the world. But where data is stored, the customer can decide. The site’s archive cabinet has four stores locked to the EU: a Durable Object, a D1 database, a KV namespace and an R2 bucket. Next to them stands a Durable Object without a lock. The map and the cards below measure where they answer from while you look at the page. Put a seal in the cabinet and see where it ends up. The seal stores only the time and the data centre, nothing about you.
The jurisdiction decides where data is stored. That is what the cabinet shows, and anyone can use it. The rest requires Cloudflare’s Data Localization Suite on the Enterprise plan.
D1, KV, R2, Durable Objects and Workflows can be locked to eu, us or fedramp. Data runs and is stored only there, even when the guest is on the other side of the world. The lock is set at creation and cannot be changed afterwards.
Decides where the edge may decrypt and process traffic. Without it, a guest’s connection may be opened in the nearest data centre, whatever the country.
Keeps logs and analytics in the EU or the US, so metadata about the traffic stays in the region too.
Decides in which countries the site’s private TLS keys may exist.
Many believe the GDPR requires data to be in the EU. It does not, directly. But the rules make compliance much easier when data stays in the EU, and some sectors require more.
Personal data may be processed outside the EU, but only with a legal basis for the transfer: a decision that the country protects data adequately (article 45), or for example the EU standard contractual clauses with an assessment of the receiving country (article 46). If data stays in the EU, there is no transfer to document.
In 2020 the EU Court of Justice struck down the Privacy Shield between the EU and the US, because US authorities could access data about Europeans. The current EU–US Data Privacy Framework from 2023 is valid, but still contested. Data that lives in the EU does not depend on such a framework holding.
The EU Data Act requires cloud providers to protect non-personal data too against unlawful access by authorities outside the EU. NIS2 and, for the financial sector, DORA set requirements for security and supplier management. None of them requires EU location directly, but location is often part of the answer.
Public authorities, health and finance often require data to be in the EU or in Denmark, in their tenders and data processing agreements. A jurisdiction that cannot be changed afterwards is a concrete answer.
One thing location does not solve: Cloudflare is an American company. How much that weighs depends on the data, the risk assessment and the contracts. That is why the Enterprise layers and the data processing agreement exist. This text is an explanation, not legal advice.
The Worker itself runs in the data centre nearest the guest. Placement can move it closer to the data, but not lock it in. The site’s other stores (the database, KV and R2 behind the other pages) were created without a jurisdiction. The measurements show that they live in western Europe today, but that is chance, not a promise.
# 1. Create the stores with a jurisdiction (can only be set at creation)
npx wrangler d1 create wi24rd-eu-skab --jurisdiction=eu
npx wrangler kv namespace create wi24rd-eu-skab --jurisdiction=eu
npx wrangler r2 bucket create wi24rd-eu-skab --jurisdiction=eu
# 2. wrangler.toml: R2 needs the jurisdiction in the binding
[[r2_buckets]]
binding = "EU_R2"
bucket_name = "wi24rd-eu-skab"
jurisdiction = "eu"
// 3. Durable Objects: choose the jurisdiction when getting the object
const stub = env.SKAB.jurisdiction("eu").getByName("skabet");
// … and inside the object: this.ctx.id.jurisdiction === "eu"
Raw measurements as JSON: /api/maskine/eu/skab. Sources: D1 · R2 · KV · Durable Objects · Data Localization Suite
The family: The defences·The crawlers·The speed·Denmark right now·The archive cabinet·The door·The infrastructure map·The audit·Back to the machine room
Feature requests, bug reports and questions are welcome. Every message gets a personal reply.