System design interview questionHardE-Commerce / Inventory

Design a Hotel Booking System like Booking.com

Design Booking.com-style hotel booking: search availability, hold a room, and confirm a reservation without overselling.

Interview scope

Client → Gateway/LB → App → Cache (search) + DB (inventory/bookings). Optional Queue for emails. No Client → DB.

Functional requirements

  • Search hotels by location/dates.
  • Hold/reserve a room for a short time.
  • Confirm booking and persist it.

Scale and quality goals

  • Search is read-heavy — cache hot results.
  • Inventory must stay consistent (no double-book).
  • Confirmation emails can be async via queue.

Capacity assumption

Design for this scale

Assume ~30M searches/day (~350 RPS) and ~1M bookings/day (~12 RPS average).

Practice more than a diagram

Place components on the Froquiz canvas, connect the data flow, and see which decisions the scenario-specific review finds missing. The full exercise and review unlock with Premium.

Explore Premium