Design a Conference Room Booking System — Easy System Design Problem
Back to problemsEasy SYSTEM DESIGN · Enterprise
Design a Conference Room Booking System Calendar
Design a room booking system with real-time availability, recurring meetings, and conflict detection. The platform lets employees search for available rooms by capacity and amenities, handles recurring reservation patterns, and sends reminders ahead of meetings.
Search available rooms by date, time, capacity, and amenities Book rooms for one-time or recurring meetings with conflict detection Cancel or modify bookings with automatic notification to attendees Send meeting reminders 15 minutes before the scheduled time
Availability Engine Conflict Detector Recurring Event Generator Reminder Scheduler Monitoring / Logs for observability across all services Rate Limiter to throttle abusive or runaway clients Auth Service for token validation and session authentication CDN (CloudFront) for edge caching of static assets Cache for frequently accessed data and reduced database load Load Balancer for distributing traffic across service instances HA/DR Strategy — multi-AZ deployment with automated database failover, cross-AZ synchronous replication, regular backup snapshots, and defined RTO/RPO targets Service Mesh (Sidecar Proxy) — mTLS between all services, zero-trust enforcement, and fine-grained traffic control for a Conference Room Booking System Distributed Tracing (APM) — end-to-end request correlation across all services for latency percentile tracking, dependency mapping, and SLO alerting
GET /api/v1/rooms/available?date={date}&start={time}&end={time}&capacity={n} — Search POST /api/v1/bookings — Create a booking (one-time or recurring) PUT /api/v1/bookings/{bookingId} — Modify a booking DELETE /api/v1/bookings/{bookingId} — Cancel a booking
Availability check responds in under 100ms No double-bookings allowed under any race condition Support 500 rooms across 20 office locations Recurring meeting generation completes within 2 seconds
Employee authenticates via Auth Service and searches for available rooms
API Gateway routes to the Web Server for availability queries
Web Server checks room availability using the Cache for hot time slots
Booking creates a reservation record in the Database with optimistic locking
Cron Job generates recurring meeting instances and checks for conflicts
Cron Job triggers Notification Service for upcoming meeting reminders
Notification Service sends email/push alerts to all attendees