HLDArena
HLD-126·Caching & Edge
Easy · 500 pts

Calendar Free/Busy Slot Lookup & Booking Link API

Design a Calendly-style public scheduling availability API that serves precomputed free/busy bitmaps when hosts share booking links widely.

Max p99
≤ 45 ms
Availability
≥ 99.5%
Budget
≤ $2,400

Functional Requirements

  • FR-1GET /freebusy/{host_id}?week=current — Returns available 15-minute meeting slots in viewer timezone.
  • FR-2POST /freebusy/{host_id}/busy — Updates host busy intervals from calendar webhooks.
  • FR-3PATCH & DELETE /freebusy/{host_id} — Updates, revokes, or deletes host_id entries with bounded TTL or explicit cache/index invalidation.
  • FR-4Availability reads must remain fast and online if primary DB crashes.

Workload Profile

Baseline Link Views15,000 Read RPS / 1,400 Webhook Write RPS
Recruiting Campaign Surge45,000 Read RPS / 4,000 Write RPS
Active Working Set10 GB 60-day free/busy bitmaps
Traffic DistributionSkewed reads on public recruiter/exec host_id links

Consistency Model

Eventual bitmap refresh (< 5s) on public link view; final booking re-verifies slot.

Design Write-up
0 boxes · 0 edges
0 words
Hidden Cases #4–#7 run automatically on Submit
Case 1: Smoke & API ContractInput Workload
Read RPS
1,500 rps
Write RPS
140 rps
Key Distribution
Uniform (Low Skew)
Chaos Fault
None (Healthy Cluster)
Expected Pass CriteriaASSERTIONS
• Tail Latency: p99 ≤ 90 ms
• Availability: ≥ 99.5%
Valid end-to-end Client → Compute → Storage topology