Concepts
Organizations, projects, database location, and data residency — the core objects the control plane is built around.
Organizations
Section titled “Organizations”An organization is the top-level tenant: it owns members, projects, API keys, billing, and settings. A user can belong to many orgs and switches between them with the org switcher; the one they’re acting in is their active org. The creator becomes the owner.
Org settings you can change later: name, IP allowlist, and the org-level webhook URL. Residency cannot change once set.
Projects
Section titled “Projects”A project is a single provisioned backlex instance — its own worker, database, and storage — served at <slug>.backlex.com. Projects have:
- a slug (derived from the name, globally unique under the platform domain),
- an environment (
production,staging,development), - a database location (automatic, or pinned to a region), fixed at provision time,
- a status (
provisioning,live,failed,paused, …).
The slug is also the dispatch key: a request to <slug>.backlex.com is host-dispatched to the proj-<slug> user worker.
Database location
Section titled “Database location”Every project’s database (D1) has a primary location. It’s fixed when the project is provisioned and can’t move afterwards — the location only governs where your data lives; the project’s worker always runs on Cloudflare’s edge in every location regardless. How the primary is placed depends on the org’s residency:
-
Global — by default the database is placed automatically in the closest available region to wherever you create the project. You can optionally provide a location hint to pin the primary to a broad area instead:
- Western North America
- Eastern North America
- Western Europe
- Eastern Europe
- Asia Pacific
- Oceania
(These mirror Cloudflare’s D1 location hints — a hint is a coarse geographic area, not a single city.)
-
EU — the database is created under the EU jurisdiction, so the primary and its replicas stay within the European data boundary (GDPR). The jurisdiction governs placement, so there’s nothing to pick — a location hint, if supplied, is ignored.
Read replication
Section titled “Read replication”Both global- and EU-residency projects get D1 read replicas: reads are served from a replica near the user while writes still go to the primary. Replicas spin up wherever read traffic appears — you don’t pick their locations, and there’s no extra Cloudflare cost. Global replicas are unconstrained; EU replicas stay within the EU boundary (enforced by the database’s jurisdiction). The instance reads through the D1 Sessions API, so read-your-writes consistency is preserved within a session.
Data residency
Section titled “Data residency”Residency pins where an org’s data is allowed to live and is set once at creation:
eu— data stays within the EU data boundary under the EU jurisdiction (GDPR); replicas stay in-region.global— no residency constraint; automatic placement (or an optional location hint), plus unconstrained global read replicas.
Residency is what decides how a project’s database is placed — automatic/hint for global, EU jurisdiction for eu.