About This Architecture

An Airbnb-style rental platform designed for independent scaling of reads and writes.

Travelers browse and book rooms through a fast read path served from caches, a search index, and read replicas. Landlords publish listings through a write path buffered by a durable queue — so the database is never overwhelmed by spikes.

Read Path

Guest traffic hits Route 53, ALB, and stateless microservices that query Elasticsearch and read replicas. The primary database is never touched by browse requests — search stays fast under load.

Write Path

The Host Service enqueues changes to SQS and returns immediately. The Update Service drains the queue, writes to the primary DB, and re-indexes Elasticsearch — turning bursty writes into a steady stream.

Why It Scales

Every service tier is stateless behind the ALB — Auto Scaling groups add or remove instances freely. The queue absorbs write bursts, Elasticsearch scales reads separately from the DB, and CloudFront serves media from edge POPs.

Design Decisions

01

Microservices over monolith

Each domain (view, guest, payment, search, host) has different load profiles. Separating them lets each scale and deploy independently.

02

Queue-buffered writes

SQS decouples the Host Service from the database and search index. Failures retry automatically; poison messages land in a dead-letter queue.

03

Elasticsearch for search

Relational queries can't match the sub-100ms faceted search travelers expect. A dedicated index sharded across nodes handles this without competing with transactional writes.

04

CloudFront for media

Listing pages are photo-heavy. Serving images from S3 through CloudFront's global edge POPs cuts latency for distant users and reduces origin load.