Airbnb's "Notification System" interview question focuses on designing a scalable, reliable system for delivering notifications at massive scale, often tagged with data engineering, system design, backend, event-driven architecture, batch processing, web, notifications, and machine learning elements. No single official full problem statement exists publicly from Airbnb, but aggregated from common interview reports, it typically asks candidates to architect an end-to-end system handling millions of daily notifications across channels like push, email, SMS, and in-app, triggered by events such as bookings or messages. Here's the compiled standard problem scope, examples, and constraints based on consistent descriptions.[4][6]
Design a notification system for an Airbnb-scale platform (e.g., 500K+ daily bookings generating 1-1.5M notifications/day) that:
No formal I/O formats like LeetCode, but design discussions use these scenarios:[4][2]
| Scenario | Input Event | User Preferences | Expected Output |
|----------|-------------|------------------|-----------------|
| Booking Confirmation | {event: "booking.confirmed", user_id: 123, booking_id: "ABC", timestamp: now} | Push/email on, SMS off | Push to mobile + email with template: "Hi {name}, your booking {ABC} is confirmed for {dates}." |
| Host Message Reply | {event: "message.received", from_host: 456, to_guest: 123, content: "Welcome!"} | In-app + email | WebSocket in-app + email; fallback SMS if both fail after 2 retries. |
| Batch Digest | Batch of 5 events (e.g., reminders) for user 789 | Batch email on, real-time off | Single email: "You have 2 new messages, 3 reminders" sent hourly. |
| Peak Spike | 1M promo events in 1 hour | All channels throttled | Queue/batch 80%, prioritize top 20% urgent via ML score [2]. |