You are asked to do two system-design prompts.
Prompt A: Meeting Scheduler
Design a meeting scheduling system (similar to a calendar + scheduling assistant) that allows users to:
-
Create meetings with a set of attendees.
-
Find available time slots for all attendees within a time range.
-
Send invitations and track RSVP status (accepted/declined/tentative).
-
Prevent double-booking (or clearly define how conflicts are handled).
Discuss:
-
Core APIs.
-
Data model and storage choices.
-
How you compute availability efficiently.
-
Consistency requirements and concurrency control.
-
Indexing strategy and performance at scale.
Assume:
-
Millions of users, each with many events.
-
Time zones matter.
Prompt B: Online Shopping Cart (Multi-merchant)
Design an online shopping cart service where:
-
A user can add/update/remove items in their cart.
-
The platform is a marketplace:
each merchant has a separate cart per user
(i.e., user has one cart per merchant).
-
You must handle frequent cart updates and decide how to index and store carts.
Discuss:
-
Core APIs.
-
DB schema (or document model) and indexing.
-
How to handle concurrency (multiple devices/tabs).
-
How pricing/promotions/inventory are handled (cart vs checkout).
-
Caching strategy and data retention (TTL) for abandoned carts.
-
Failure modes and consistency trade-offs.