PracHub
QuestionsPremiumLearningGuidesInterview PrepNEWCoaches
|Home/System Design/Airbnb

Design a hot-listing waitlist API

Last updated: May 7, 2026

Quick Overview

This question evaluates proficiency in system design competencies such as API design (REST and gRPC), data modeling for per-listing per-date inventory, concurrency control and race-condition prevention, notification delivery, ordering and fairness policies, scalability and observability, and end-to-end testing strategies.

  • hard
  • Airbnb
  • System Design
  • Software Engineer

Design a hot-listing waitlist API

Company: Airbnb

Role: Software Engineer

Category: System Design

Difficulty: hard

Interview Round: Onsite

Design a waitlist API for high-demand listings. When a user wants a date that is unavailable for a given listing, they can join a per-listing, per-date waitlist; when inventory becomes available, notify waitlisted users. Define REST/gRPC endpoints, request/response schemas, data models, and storage. Explain ordering/fairness (e.g., FIFO with priority tiers), capacity limits, deduplication, idempotency, and how users join/leave the waitlist. Describe the notification subsystem (push/email/SMS), delivery guarantees, retries, and user preferences. Address concurrency and race conditions to prevent double-booking; discuss transactions, optimistic locking, and exactly-once vs at-least-once semantics. Cover scalability for spikes, sharding strategy, backpressure, rate limiting, observability, and end-to-end testing.

Quick Answer: This question evaluates proficiency in system design competencies such as API design (REST and gRPC), data modeling for per-listing per-date inventory, concurrency control and race-condition prevention, notification delivery, ordering and fairness policies, scalability and observability, and end-to-end testing strategies.

Related Interview Questions

  • Design a Scalable Job Scheduler - Airbnb
  • Design a Rental Marketplace Backend - Airbnb (hard)
  • Design a booking system - Airbnb (medium)
  • Design a group chat system - Airbnb (medium)
  • Design a real-time chat system with hot groups - Airbnb (hard)
Airbnb logo
Airbnb
Jul 16, 2025, 12:00 AM
Software Engineer
Onsite
System Design
10
0

System Design: Waitlist API for High-Demand Listings

Context

You are designing a waitlist system for a marketplace that offers date-based inventory (e.g., nightly stays). When a user selects a date for a given listing that is unavailable, they can join a per-listing, per-date waitlist. When inventory becomes available (e.g., due to a cancellation), the system should notify waitlisted users and prevent double-booking.

Assume:

  • Inventory is tracked per listing per date (check-in date). Some listings may have capacity >1 per date.
  • A waitlist exists per (listingId, date). Users may appear at most once per such waitlist.

Tasks

  1. Define external and internal APIs:
    • REST endpoints (paths, methods, status codes)
    • gRPC service/methods
    • Request/response schemas
  2. Propose data models and storage:
    • Entities/tables, indexes, and cache choices
    • How to store and order the waitlist (e.g., FIFO, priority tiers)
    • Capacity limits and deduplication
  3. Explain correctness and fairness:
    • Ordering policy (FIFO with optional priority tiers) and tie-breaking
    • Idempotency for join/leave and notification-triggered booking
    • How users join/leave; expiration/TTL of entries
  4. Describe the notification subsystem:
    • Push/email/SMS; user preferences (quiet hours, opt-in/out)
    • Delivery guarantees, retries, and escalation
  5. Address concurrency and race conditions:
    • Prevent double-booking when capacity reappears
    • Transactions, optimistic/pessimistic locking
    • Exactly-once vs at-least-once semantics and idempotent consumers
  6. Cover scalability and reliability:
    • Sharding/partitioning, hotspots, backpressure, rate limiting
    • Observability (metrics, logs, traces) and SLOs
  7. Propose an end-to-end testing strategy:
    • Unit, integration, property-based, load, chaos/failure injection

Include diagrams in prose if helpful and justify trade-offs.

Solution

Show

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Airbnb•More Software Engineer•Airbnb Software Engineer•Airbnb System Design•Software Engineer System Design
PracHub

Master your tech interviews with 7,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.