← Airbnb Interview Insights

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

SeniorPrefer not to say
Jun 2026

Summary

Airbnb system design round, single big question about building a waitlist API for high-demand listings. Dense problem with a lot of moving parts and I'm not sure I covered everything they wanted.

Questions Asked (1)

Q1

Design a waitlist API for high-demand listings. Users can join a per-listing, per-date waitlist when their desired date is unavailable, and get notified when inventory opens up. Cover the endpoints, data models, storage, fairness/ordering, notifications, concurrency handling, and scalability.

System DesignAPI & IntegrationsData Modeling
Author's notes

This question ate the whole session.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then design the API endpoints and data models. Walk through the core flows: joining a waitlist, detecting inventory availability, and notifying users. Emphasize fairness, concurrency, and scalability trade-offs.

Pro tip: Use a FIFO queue with idempotency keys for join requests, and consider a two-phase notification system (soft hold then confirm) to avoid race conditions when inventory opens.

1. Clarify Requirements and Scale

Ask about expected traffic, listing/date cardinality, notification channels, and fairness guarantees. Establish read/write ratios and latency requirements.

2. Design API Endpoints and Data Models

Define RESTful endpoints for joining, leaving, and checking waitlist status. Model entities: WaitlistEntry, Listing, DateInventory, and Notification.

3. Choose Storage and Ordering Strategy

Select a datastore (e.g., Redis sorted sets for FIFO, or DynamoDB with composite keys). Explain how to maintain per-listing, per-date ordering and handle idempotency.

4. Handle Concurrency and Notifications

Use atomic operations or distributed locks to prevent double-booking. Design a notification service with retries and a soft-hold mechanism to manage inventory release.

5. Address Scalability and Trade-offs

Discuss sharding by listing/date, caching, and asynchronous processing. Compare push vs. pull notifications and explain consistency vs. availability trade-offs.

Key Points to Mention

  • Idempotency keys to prevent duplicate waitlist entries
  • FIFO ordering with timestamps or sequence numbers for fairness
  • Atomic operations (e.g., Redis transactions) for concurrency control
  • Notification service with retries, dead-letter queues, and rate limiting
  • Sharding strategy based on listing ID and date to distribute load
  • Soft-hold mechanism to temporarily reserve inventory during notification

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