System design interview questionMediumCollaborative System
Design a Calendar System like Google Calendar
Design Google Calendar-style events: create meetings, check availability, and notify attendees.
Interview scope
Client β Gateway/LB β App β Cache (hot agendas) + DB (events) + Message Queue (reminders/invites). No Client β DB.
Functional requirements
- Create/update/cancel calendar events.
- Query a userβs agenda for a time range.
- Notify attendees when events change (async ok).
Scale and quality goals
- Agenda reads should be fast (cache helps).
- Event truth lives in a durable DB.
- Notifications should not block the write API forever.
Capacity assumption
Design for this scale
Assume ~20M event reads/day (~230 RPS) and ~2M event writes/day (~23 RPS average).
Practice more than a diagram
Place components on the Froquiz canvas, connect the data flow, and see which decisions the scenario-specific review finds missing. The full exercise and review unlock with Premium.
Explore Premium β