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
| Region | AWS | Since | Clients |
|---|---|---|---|
| EU | Frankfurt, eu-central-1 | the start | most clients; the default until 27 October |
| UK | London, eu-west-2 | January 2025 | UK clients, Brakeline and Northgate among them |
| US | Virginia, us-east-1 | January 2026 | two: 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
| Environment | Where | What for |
|---|---|---|
| local | your laptop, Docker | Local development |
| staging | EU only | every merge to main; test organisations for large clients (Kelderby's test depot, Halden's staging site) |
| production-eu / -uk / -us | one per region | customers |
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
| Version | Date | Who | What |
|---|---|---|---|
| 9 | 20 Jan 2025 | Rafael | UK region live |
| 10 | 19 Jan 2026 | Rafael | US region live |
| 11 | 13 Oct 2026 | Elif | Mailcrest's US logs found (ACM-305) |
| 12 | 16 Oct 2026 | Elif | EU mail account |
| 13 | 27 Oct 2026 | Mira | Region step at onboarding (ACM-296) |