Back to problems

Waitlist System Design

System Design · Airbnb · Medium

Requirements Functional Design the following waitlist capabilities: join_waitlist(user_id, listing_id, criteria) — register a user for a listing using date and price preferences. leave_waitlist(user_id, listing_id) — remove that user's waitlist entry for the listing. When availability that satisfies a subscriber's criteria becomes available, notify every matching subscriber. Repeated join requests for the same user and listing must be idempotent and must not create…

Checking your access…