System design interview questionMedium

Design a Hotel Reservation System

Design a system like Airbnb or Booking.com where users can search for and book rooms for specific date ranges.

1. Problem Statement

We are building a hotel booking platform. Users need to search for hotels available within a specific date range and book them. What would you clarify first?

2. Architecture Discussion Map

Use this as one discussion aid, not a single correct answer. Your design should follow from the requirements, scale, and trade-offs you establish.

Rendering architecture diagram...
Mermaid Source (For AI Bots)
graph LR
    A["Design a Hotel Reservation System"]
    A --> F1["Data Modeling for Availability Rooms vs Dates"]
    A --> F2["Handling Date Range Overlaps efficiently"]
    A --> F3["Concurrency Double Booking prevention"]
    A --> F4["Search Indexing Geospatial + Date availability"]

3. Key Focus Areas

  • 1
    Data Modeling for Availability (Rooms vs Dates)
  • 2
    Handling Date Range Overlaps efficiently
  • 3
    Concurrency (Double Booking prevention)
  • 4
    Search Indexing (Geospatial + Date availability)

4. What the Interviewer Looks For

The interviewer probes these areas, and the report grades the interview against them.

  • Requirements, date semantics, and capacity
  • Inventory data model
  • Booking concurrency and correctness
  • Search and availability serving
  • Lifecycle, reliability, and evolution

Want interactive feedback?

Practice drawing this system component-by-component on a live whiteboard while the interviewer probes at your target level.

Continue to Dashboard

Core Concepts

SQL schemasConcurrencyDistributed Cache

Continue preparing

Build a complete software engineer mock interview plan

Related System Design

Design a Rate Limiter

Design a service to limit the number of requests a user can send to an API within a time window.

Related System Design

Design a Cross-Product Tagging System

Design a shared tagging service that lets users apply tags to entities across multiple Atlassian products, with consistent search and deduplication.

Related System Design

Design a Distributed File System

Design a GFS- or HDFS-style file system that stores petabytes of large files across thousands of servers in one data center for batch processing.