Design Craigslist — Easy System Design Problem
Design an online classifieds platform for local buying, selling, and services. The system should support posting listings with images, geo-based search for nearby items, categories and filters, and direct messaging between buyers and sellers.
Create, edit, and delete classified listings with images and descriptions Search and filter listings by category, location, price range, and keywords Support geo-based search to show listings within a radius Enable direct messaging between buyers and sellers
Listing Service Geo-Search Index Image Pipeline Messaging System Monitoring / Logs for observability across all services Rate Limiter to throttle abusive or runaway clients Auth Service for token validation and session authentication CDN (CloudFront) for edge caching of static assets Cache for frequently accessed data and reduced database load Load Balancer for distributing traffic across service instances HA/DR Strategy — multi-AZ deployment with automated database failover, cross-AZ synchronous replication, regular backup snapshots, and defined RTO/RPO targets Service Mesh (Sidecar Proxy) — mTLS between all services, zero-trust enforcement, and fine-grained traffic control for Craigslist Distributed Tracing (APM) — end-to-end request correlation across all services for latency percentile tracking, dependency mapping, and SLO alerting
POST /api/v1/listings — Create a new listing GET /api/v1/listings/search?q={query}&lat={lat}&lon={lon}&radius=10mi — Search GET /api/v1/listings/{listingId} — Get listing details POST /api/v1/messages — Send a message to a seller
Search results returned within 200ms Image uploads processed and thumbnailed within 5 seconds Handle 1M concurrent listing browsers Content moderation for spam and prohibited items
Client accesses the platform through CDN for static assets and cached listings New listing submissions go through the Load Balancer to the API Gateway
Web Server stores listing metadata in the Database
Images are uploaded to Object Storage with thumbnails generated
Search Index is populated for full-text and geo-based search queries
Cache stores popular search results and hot listings
CDN serves listing images from Object Storage