Archicise
Exercise

Design a Booking System

Create a reservation platform similar to Airbnb or OpenTable that handles availability, bookings, and prevents double-booking.

Functional Requirements

  • Search available inventory by date, location, and criteria
  • Book resources with instant confirmation
  • Handle cancellations and modifications
  • Prevent double-booking of the same resource
  • Support for recurring availability patterns
  • Waitlist for fully booked slots

Non-Functional Requirements

  • Handle thousands of concurrent booking attempts
  • Zero tolerance for double-bookings
  • Fast availability searches
  • Support for time zones and business hours

Questions to Consider

  • How do you prevent race conditions in concurrent bookings?
  • What data model handles complex availability patterns?
  • How do you handle high-demand inventory fairly?
Your Solution

Availability Model

Design the availability data model. Consider time slots, recurring patterns, blackout dates, and timezone handling.