Design a Doctor Appointment Booking System for Sudden Demand
Company: Garner Health
Role: Software Engineer
Category: System Design
Difficulty: medium
Interview Round: Technical Screen
# Design a Doctor Appointment Booking System for Sudden Demand
Design a system where patients search for doctors, view available time slots, book appointments, and cancel bookings. Doctors or authorized staff manage schedules and blocked time.
The system must prevent two patients from booking the same slot. As a follow-up, a new vaccine becomes available and demand for a limited set of appointments rises sharply in a short period.
### Clarifying Questions to Ask
- Are appointments fixed slots, arbitrary time ranges, recurring schedules, or a combination?
- Can a visit require multiple resources such as a clinician, room, and equipment?
- Is availability allowed to be slightly stale, and what confirmation guarantee does booking provide?
- Are waitlists, rescheduling, eligibility, reminders, and payment in scope?
- What traffic increase and geographic distribution should the vaccine launch assume?
### What a Strong Answer Covers
- Patient, clinician, location, schedule rule, slot, hold or booking, and cancellation entities.
- Search and availability read paths plus an authoritative booking write path.
- Unique constraints or conditional writes, idempotency, transactions, and cancellation races.
- Cache invalidation, read replicas, partitioning, queues, throttling, admission control, and autoscaling.
- A plan for hot vaccine slots that preserves fairness and does not oversell capacity.
- Monitoring, failure recovery, and explicit consistency semantics.
### Follow-up Questions
1. How do you stop a stale cached availability result from causing a double booking?
2. How would you implement a fair waiting room for a small number of vaccine appointments?
3. What happens if a cancellation and a booking request race for the same slot?
4. How would you support an appointment requiring both a doctor and a room?
Overview: Design a doctor appointment system with searchable availability, atomic booking, cancellation, and protection against double booking. The follow-up examines a vaccine-demand spike through waiting-room admission, fairness, throttling, hot-slot partitioning, caching, autoscaling, load shedding, and reconciliation.
Read the full Garner Health Software Engineer interview experience this question came from