← Airbnb Interview Insights

Airbnb·Software Engineer·Onsite - System Design / Architecture·Senior

SeniorPrefer not to say
May 2026

Summary

System design round at Airbnb focused on notification infrastructure. The scope was pretty wide and the scale requirement made it more interesting than the usual 'design a notification service' prompt you see everywhere.

Questions Asked (1)

Q1

Design a notification system for Airbnb that supports both single event-triggered notifications and bulk/batch sends, across multiple channels like SMS, push, email, and social posts, at Airbnb scale. Consider use cases like booking confirmation emails, promotional messages to hosts, and SMS lock codes to guests.

System DesignTechnical Trade-offsAPI & Integrations
Author's notes

The multi-channel part is where I spent most of my time and probably where I fumbled a bit.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then design a decoupled, event-driven architecture with a notification service that handles both single and bulk sends. Focus on channel abstraction, idempotency, and reliability, and discuss trade-offs like synchronous vs. asynchronous processing and prioritization.

Pro tip: Emphasize idempotency and deduplication for bulk sends to avoid spamming users, and mention how you would handle failures with retries and dead-letter queues. Also, consider user preferences and rate limiting to respect user attention.

1. Clarify Requirements and Scale

Ask about expected volume (e.g., millions of notifications per day), latency requirements, delivery guarantees, and supported channels. Clarify use cases like transactional vs. promotional and any compliance needs.

2. High-Level Architecture

Propose a microservices-based system with a notification service that receives requests via API or events, processes them asynchronously using queues, and dispatches to channel-specific workers. Include a database for tracking and user preferences.

3. Handle Single and Bulk Sends

For single sends, use a direct API call that enqueues the notification. For bulk, accept a batch request, split into individual messages, and enqueue them, ensuring idempotency and deduplication.

4. Channel Integration and Abstraction

Design a channel abstraction layer with adapters for SMS, push, email, and social. Each adapter handles provider-specific logic, rate limits, and retries. Use a common interface for sending.

5. Reliability, Scalability, and Monitoring

Discuss using message queues (e.g., Kafka, SQS) for decoupling, retries with exponential backoff, dead-letter queues, and idempotent processing. Include monitoring, logging, and alerting for failures and latency.

Key Points to Mention

  • Idempotency and deduplication to prevent duplicate notifications, especially for bulk sends.
  • Asynchronous processing with message queues to handle scale and decouple services.
  • Channel abstraction layer to support multiple providers and easy addition of new channels.
  • User preferences and rate limiting to avoid overwhelming users and comply with regulations.
  • Retry mechanisms with exponential backoff and dead-letter queues for failed deliveries.
  • Monitoring and analytics for delivery rates, latency, and failure rates.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.