Unlock it once for 15 credits; everything inside it is free (runs, changes, Submit, results, hints). Sign in with Google to start; new accounts get free credits.
What it must do
Search for stays on a map: homes inside the area you are looking at, free on your dates.
Show a listing page with photos, reviews and the calendar.
Book a stay: two guests can never book the same nights at the same home.
Charge the guest and tell the host.
Scale
2,000 requests a second at the busiest hour: 1,200 map searches, 740 listing views and 60 bookings.
Every search is a geographic query (the homes inside a map box), not a lookup by key.
Listings change rarely and are read thousands of times a day; holiday weekends bring 3× the traffic.
Request types to route: search (60%, read), listing (37%, read), book (3%, write). Budget: $68,000 a month.
Estimate first
Map searches a second on a holiday weekend (3×) (req/s)
Bookings an hour at the busiest hour (bookings)
Listing reads a second that reach the database with a 90% cache hit rate (req/s)
Monthly cloud cost of your design (USD)
The test cases
You start from an empty canvas. When you run the tests, each one simulates your design with its own traffic and failures:
Test
What it does
Passes when
Normal day
The normal day: the traffic in the brief, nothing broken.
Success ≥ 99%; p99 latency ≤ 400 ms (search); p99 latency ≤ 300 ms (listing); p99 latency ≤ 3.0 s (book)
A holiday weekend
At 5 s everyone starts planning the long weekend: traffic jumps to 3× for 8 s.
Success ≥ 99%; p99 latency ≤ 800 ms (search); p99 latency ≤ 500 ms (listing)
Cache flushed
At 5 s the cache on the request path is emptied, as after a restart or a bad deploy.
Success ≥ 99%; p99 latency ≤ 500 ms (listing)
A server dies
At 4 s one server of the first app service on the request path dies for 10 s.
Success ≥ 99%
Budget: $68,000/month
The normal day's design must cost at most $68,000 a month.
Cost ≤ $68,000/month
Must include
A geo search index. Map searches ask for the homes inside a box: a geospatial (or search) index answers that, a plain database scan does not.
A cache for listing pages. A listing is read thousands of times between edits; serve it from memory.
A lock for bookings. Two guests booking the same nights at the same moment must not both succeed: lock the home’s calendar while you write the booking.
A payment gateway. Guests pay by card through a gateway.