Design the architecture for Airbnb - the world's largest hospitality marketplace with 150 million users, 7 million listings, and 2 million bookings per night at peak. Your design must cover:
- Listing management - hosts create listings with photos, descriptions, amenities, house rules, and availability calendars. Listings are searchable and filterable by 50+ attributes.•Search & discovery - search by location, dates, guests, price range, amenities, and property type. Results ranked by relevance, price, host quality, and location desirability. Support map-based browsing with listings rendered on a map as the user pans/zooms.•Availability & booking - the calendar availability system must prevent double-bookings. When a guest requests dates, the system must atomically check availability and reserve. Hosts can set different prices for different dates (seasonal pricing).•Payments - split payments: guest pays at booking, host receives payout after check-in. Support 70+ currencies, handle refunds, cancellation policies, and service fees. Escrow model.•Reviews - two-sided reviews (guest reviews host AND host reviews guest), both revealed simultaneously after a blind period to prevent retaliation bias.•Dynamic pricing - suggest optimal nightly prices to hosts based on demand, local events, seasonality, comparable listings, and day of week. "Smart Pricing" feature.•Trust & safety - identity verification, background checks, fraud detection (fake listings, payment fraud), and a resolution center for disputes.•Messaging - real-time chat between guests and hosts with pre-booking questions, booking confirmations, and check-in instructions.
The core challenge is a two-sided marketplace with complex availability/pricing logic, geospatial search, and trust systems.
Design Airbnb's marketplace - listing search, booking, payments, reviews, pricing, and trust at 150 M+ users. Build this architecture under realistic production constraints, then validate tradeoffs in the design lab simulation.
Request path: The solution keeps ingress, service logic, and stateful dependencies separated so each layer can scale independently.
Reference flow: Web Clients -> DNS -> Load Balancer -> API Gateway -> Core Service -> Primary SQL DB -> Read Model DB -> Redis Cache