| Scale | Users | Data Volume | Traffic (Requests/sec) | Key Challenges |
|---|---|---|---|---|
| Small | 100 users | MBs of posts, images | ~100 req/sec | Basic CRUD, simple DB queries |
| Medium | 10K users | GBs of media, posts | ~10K req/sec | Database indexing, caching, load balancing |
| Large | 1M users | TBs of data, videos | ~1M req/sec | Distributed storage, sharding, CDN, real-time updates |
| Very Large | 100M users | PBs of data | ~100M req/sec | Global data centers, multi-region replication, advanced caching, AI moderation |
Why social media tests multiple design skills in HLD - Scalability Evidence
At small scale, the database handles all requests easily. As users grow, the database becomes the first bottleneck because social media stores huge amounts of posts, images, and videos. Complex queries for feeds and search slow down. Storage and retrieval speed limit performance.
- Horizontal Scaling: Add more app servers behind load balancers to handle more users.
- Database Sharding: Split user data across multiple databases to reduce load on each.
- Caching: Use Redis or Memcached to store popular posts and user sessions for fast access.
- Content Delivery Network (CDN): Distribute images and videos globally to reduce latency and bandwidth use.
- Asynchronous Processing: Use message queues for notifications and feed generation to avoid blocking user requests.
- Real-time Systems: Implement WebSockets or push notifications for live updates.
- At 1M users, expect ~1 million requests per second peak.
- Storage needs reach terabytes daily due to media uploads.
- Bandwidth usage can exceed multiple gigabits per second, requiring CDNs.
- Database QPS limits (~10K per instance) mean multiple shards and replicas are needed.
- Server count scales from a few at small scale to hundreds or thousands at large scale.
Start by outlining the main components: users, data, traffic. Discuss growth stages and identify bottlenecks at each stage. Propose targeted solutions like caching, sharding, and CDNs. Explain trade-offs and how each solution fits the problem. Use real numbers to show understanding of scale.
Your database handles 1000 QPS. Traffic grows 10x to 10,000 QPS. What do you do first and why?
Answer: Implement read replicas and caching to reduce load on the primary database before considering sharding or adding more servers.
