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

Regions and environments

By Rafael Duarte · created 7 Nov 2022, 09:00 UTC · last updated 27 Oct 2026, 14:50 UTC · version 13

regionsenvironmentsawsdata-residency

We run one complete stack per region. Each client is placed in one region when it is onboarded, and its data and backups stay there. Why: ADR-006. What we tell customers: Data regions.

Regions

RegionAWSSinceClients
EUFrankfurt, eu-central-1the startmost clients; the default until 27 October
UKLondon, eu-west-2January 2025UK clients, Brakeline and Northgate among them
USVirginia, us-east-1January 2026two: Ridgeway Freight and one other (ADR-012)

Each region has its own identity-service and notifier containers (ECS), PostgreSQL (RDS, multi-AZ), Redis, SQS queue, S3 buckets for files and backups, and KMS keys. Nothing is replicated between regions. The only thing shared is a small edge table that maps a client's sign-in address to its region; it holds no personal data.

Mail and SMS by region

Since 16 October, EU clients' notice emails go through Mailcrest's EU account and keep their logs in the EU; UK and US clients' go through the original US account (ACM-305, ACM-304, OPS-50). SMS codes go through Textbridge for every region. Details on notifier.

Choosing a region at onboarding

Since 27 October (ACM-296), onboarding offers no region already chosen and refuses to finish until someone picks one (src/Onboarding/FinishOnboarding.php). The client's administrators see their region on Organisation settings in the portal, and a change of region after onboarding is written to the audit log with who did it and why. Before this, onboarding offered the EU already chosen. A client's region can't move once data is in it without a migration.

Environments

EnvironmentWhereWhat for
localyour laptop, DockerLocal development
stagingEU onlyevery merge to main; test organisations for large clients (Kelderby's test depot, Halden's staging site)
production-eu / -uk / -usone per regioncustomers

Staging has no customer data. Never copy production data to staging; use the seeders.

Access

Production access is through AWS SSO with MFA, read-only by default. Write access is granted per change through an OPS ticket and expires after eight hours. Mira reviews who has it every quarter.

Change history

VersionDateWhoWhat
920 Jan 2025RafaelUK region live
1019 Jan 2026RafaelUS region live
1113 Oct 2026ElifMailcrest's US logs found (ACM-305)
1216 Oct 2026ElifEU mail account
1327 Oct 2026MiraRegion step at onboarding (ACM-296)