ACME HQDemo work items and pages, made up for Emargen's demo. Not a real company.
Engineering / Engineering / Architecture decision records

ADR-006: One region per client, set at onboarding

By Rafael Duarte · created 7 Nov 2022, 10:00 UTC · last updated 20 Jan 2025, 14:30 UTC · version 4

adrregionsdata-residency

Status: accepted · Date: 7 November 2022 · Decided by: Rafael Duarte, Mira Holm, Quinn Maas

Context

All our clients are in Frankfurt today. UK prospects ask, in almost every security questionnaire, whether their data can stay in the UK, and two said they wouldn't sign without it. Food customers in the EU ask the reverse: that nothing leaves the EU. We need a way to promise a place, and to keep the promise without relying on people remembering.

Options:

  1. One stack, data tagged by country, with storage per country.
  2. A complete stack per region, each client in exactly one.
  3. Wait until a deal depends on it.

Decision

A complete stack per region: identity-service, notifier, database, queue, file and backup storage, and keys. Each client (our code's word for a customer) is placed in one region when it is onboarded. Its data and its backups stay in that region. Nothing is copied between regions. We start with the EU and add a region when a contract needs one.

A small edge table maps each client's sign-in address to its region. It holds no personal data.

Consequences

Updates