← Airbnb Interview Insights

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

SeniorPrefer not to say
Apr 2026

Summary

Airbnb system design round, one big question about building an availability notification system for listings. Felt pretty solid on the core pieces but the dedup and fanout details got messy under pressure.

Questions Asked (1)

Q1

Design a system that notifies users when a listing they're watching (vacation rental, hotel, product) becomes available for booking. Users can subscribe with criteria like a date range, and the system needs to detect availability changes, send alerts through the user's preferred channel, and avoid sending duplicate notifications.

System DesignTechnical Trade-offsAPI & Integrations
Author's notes

I started with the subscription store and the event source, which felt natural, but I got tripped up when they pushed on the fanout side.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then design a high-level architecture that separates availability detection, notification processing, and delivery. Focus on trade-offs like polling vs. event-driven, deduplication strategies, and scalability to handle millions of watchers.

Pro tip: Emphasize idempotency and exactly-once delivery semantics to avoid duplicate notifications, and discuss how to handle race conditions when multiple users watch the same listing.

1. Clarify Requirements and Scale

Ask about the number of listings, users, expected notification volume, latency requirements, and supported channels. This sets the stage for design decisions.

2. High-Level Architecture

Propose components: a watcher service to manage subscriptions, an availability detection service (e.g., polling or event-driven), a notification service with deduplication, and a delivery service for various channels.

3. Data Model and Storage

Design schemas for subscriptions (user, listing, criteria, channel preference) and notification logs (to track sent notifications and avoid duplicates). Choose appropriate databases (e.g., SQL for subscriptions, NoSQL for logs).

4. Availability Detection and Matching

Explain how to detect availability changes (e.g., via webhooks, change data capture, or periodic polling) and match against active subscriptions efficiently, possibly using an inverted index or streaming processing.

5. Notification Delivery and Deduplication

Describe the notification pipeline: enqueue matched events, deduplicate using a unique key (e.g., user+listing+date range), and deliver via user's preferred channel with retries and fallbacks.

Key Points to Mention

  • Trade-offs between polling and event-driven architectures for availability detection
  • Deduplication strategies: idempotency keys, bloom filters, or unique constraints in a database
  • Scalability considerations: sharding, partitioning by listing or user, and handling high write throughput
  • Reliability: exactly-once delivery semantics, retries, dead-letter queues, and monitoring
  • User experience: batching notifications, rate limiting, and allowing users to manage subscriptions
  • Integration with external systems: APIs for booking platforms, webhooks, and third-party notification services

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