Design a Rental Marketplace Backend
Company: Airbnb
Role: Backend Engineer
Category: System Design
Difficulty: hard
Interview Round: Onsite
Design the backend for a large vacation-rental marketplace similar to Airbnb.
The system should support:
- A home page that shows popular destinations and personalized listing recommendations.
- Search across millions of listings by location, travel dates, guest count, price range, and amenities.
- Accurate availability checks and booking creation.
- High traffic, low-latency reads, and global scale.
Discuss:
1. Core APIs and data models for listings, calendars, bookings, users, and recommendations.
2. How search indexing works, including geo search, filtering, ranking, and pagination.
3. How to keep availability fresh in search results while preventing double-booking under concurrent requests.
4. Storage choices, caching, partitioning, replication, and failure handling.
5. How machine learning can be integrated into the home page and search ranking without making the system unavailable if ML services fail.
Quick Answer: This question evaluates a candidate's ability to design a scalable, low-latency backend for a global vacation-rental marketplace, testing competencies in data modeling, search and geo-indexing, availability and booking consistency, storage, caching, partitioning and replication, failure handling, and machine learning integration for recommendations and ranking. It is commonly asked to assess architectural reasoning, trade-off analysis, capacity planning, and operational resilience for distributed systems; the category is System Design (backend engineering) and the level of abstraction is practical application focusing on high-level architecture and component interactions rather than implementation details.