Design a scalable news feed system
Company: Lyft
Role: Software Engineer
Category: System Design
Difficulty: hard
Interview Round: Onsite
Design the backend for a social app’s news feed. Define functional and non-functional requirements, data model, and APIs (publish, follow, getFeed). Compare fan-out-on-write vs fan-out-on-read; justify your choice under high write and read loads. Cover ranking, real-time updates, deduplication, privacy/blocks, backfilling, cold-start, caching, storage and indexing, sharding and partitions, consistency/ordering guarantees, failure handling, and monitoring. Provide capacity estimates and a high-level architecture.
Quick Answer: This System Design question evaluates a candidate's ability to design scalable backend systems for a social app news feed, covering data modeling, API design, real-time updates, ranking, privacy controls, and operational concerns such as sharding, caching, and monitoring.