Tiffin now runs in 40 Indian cities and is launching in Dubai and Singapore. All of it is served from one cloud region in Mumbai. A customer in Singapore taps "place order", and the request travels about 4,000 km to Mumbai and back. Each round trip takes around 60 milliseconds before any work happens. A screen that makes 5 calls one after another spends 300 ms just on the road.
Latency is one reason to run in more than one region. The previous lesson gave another: surviving the loss of a whole region. A third is the law: some countries require certain data about their residents to be stored inside the country. This lesson is about how to run one app in several regions, and the one question that decides almost everything: where does each piece of data live, and who is allowed to write it?
The speed of light sets the rules
Light in fibre travels about 200,000 km a second, so every 100 km of distance adds about 1 ms to a round trip, and real cables never run in straight lines. Some rough round-trip times from Mumbai:
| To | Round trip, roughly |
|---|---|
| Another zone in the same region | 1 to 2 ms |
| Dubai | 30 to 40 ms |
| Singapore | 55 to 65 ms |
| Frankfurt | 110 to 120 ms |
| US east coast | 190 to 210 ms |
No amount of engineering makes these smaller. Any design that needs two regions to agree before answering pays at least one of these round trips. That's why multi-region design is mostly about avoiding cross-region conversations on the hot path.