System design interview questionHardSocial / Media

Design a Photo Sharing App like Instagram

Design Instagram-style photo sharing: upload photos, store them, and deliver feeds/images to followers at scale.

Interview scope

Upload: Client → Gateway/LB → App → Object Storage + DB + Queue (thumbs). View: Client → CDN. Feed: App → Cache + DB. No Client → DB for images.

Functional requirements

  • Upload a photo/post with caption.
  • Follow users and read a home feed.
  • View images quickly on mobile/web.

Scale and quality goals

  • Image bytes go through CDN + Object Storage — not SQL BLOBs.
  • Feed reads should be cache-friendly.
  • Upload processing (thumbnails) can be async via queue.

Capacity assumption

Design for this scale

Assume ~50M DAU, ~2 posts/user/day, heavy image egress — CDN is mandatory for views.

Practice more than a diagram

Place components on the Froquiz canvas, connect the data flow, and see which decisions the scenario-specific review finds missing. The full exercise and review unlock with Premium.

Explore Premium