advanced

Slow in Frankfurt, Fine in Virginia

Read the evidence before you read the options. The signals are presented the way a dashboard would present them — nothing is labelled with the answer.

The report

European customers say the dashboard is slow. American customers say it is fine. The team has checked the EU deployment thoroughly and found nothing wrong — CPU, memory and database metrics are all healthy in both regions, and the EU instances are the same size as the US ones.

The system
Atlantic crossingAtlantic crossingEU browserEU edgeAPI (us-east-1)Primary DB (eu-central-1)Auth service (us-east-1)
Dashboard load — by client regionILLUSTRATIVE
SignalValueWhat it tells you
p95 page load, US clients740 msAmerican users see the page in under a second.
p95 page load, EU clients3.9 sEuropean users wait more than five times as long.
Server-side request duration148 ms (both regions)Time measured inside the API is identical regardless of where the client is.
API instance CPU (both regions)22%Compute capacity is not constrained anywhere.
Database query time (p99)14 msQueries execute quickly.
Requests per page load6Rendering the dashboard requires six separate API calls.
RTT, EU edge → us-east-188 msA round trip across the Atlantic takes about ninety milliseconds.
RTT, us-east-1 → eu-central-192 msThe API's own database is a further ninety milliseconds away from it.
Trace, one dashboard API call originating from an EU browser
GET /api/dashboard/summary                    612 ms
├── [network] EU edge → us-east-1 API            91 ms
├── auth.verify        (us-east-1 → us-east-1)    6 ms
├── db.query widgets   (us-east-1 → eu-central-1) 108 ms
│     └── pg.execute                              13 ms
├── db.query metrics   (us-east-1 → eu-central-1) 104 ms
│     └── pg.execute                              11 ms
├── db.query alerts    (us-east-1 → eu-central-1) 101 ms
│     └── pg.execute                               9 ms
├── serialize                                      8 ms
└── [network] us-east-1 → EU edge                 89 ms
What is the constraint?