Broad enough to go in a dozen directions and that's kind of the problem.
Start by clarifying functional and non-functional requirements, then estimate scale (e.g., 1B users, 100M daily photo uploads). Propose a high-level architecture covering client, API, storage, and CDN, then deep dive into 2-3 critical components like feed generation and media storage. Discuss trade-offs (e.g., push vs. pull for feeds, SQL vs. NoSQL for metadata) and justify your choices.
Pro tip: Focus on the unique challenges of Instagram: massive read-heavy workload, media storage at scale, and low-latency feed generation. Show you understand the difference between the write path (upload) and read path (feed) and how to optimize each.
Ask about functional requirements (photo upload, feed, follow, likes, comments) and non-functional (availability, latency, consistency). Estimate scale: 1B users, 500M DAU, 100M photos/day, read:write ratio 100:1.
Sketch the main components: mobile clients, load balancers, API gateway, microservices (user, media, feed, social graph), databases, object storage (S3), CDN, and caching layers (Redis). Explain data flow for upload and feed retrieval.
Choose 2-3 areas to detail: media storage (blob storage, CDN, image processing), feed generation (push vs. pull, fan-out on write vs. read), and data modeling (sharding, denormalization). Discuss trade-offs and justify choices.
Identify potential bottlenecks (hot users, celebrity problem, storage costs) and propose solutions (hybrid feed approach, caching, sharding). Discuss consistency vs. availability (CAP theorem) and latency vs. cost.
Recap the design, highlighting how it meets requirements and scales. Mention potential future improvements (e.g., ML for feed ranking, multi-region deployment) and ask if the interviewer wants to explore any area further.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.