Module 18 / High availability and multi-region

Module 18 · lesson 5 of 7 · Read 8 min

Running in many regions

Active-passive, active-active, and where the data lives.

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.