Lesson 5 of 15
37. Design a News Feed

37.4 What do we store?

3 min read+10 XP
posts post_id (time-sortable ID, Chapter 10), author_id, text, media_ids, created_at (a wide-column or sharded store, by post_id) follows follower_id → followee_id (both directions indexed; sharded by user) feed_cache user_id → list of post IDs, newest first, capped at 800 (Redis, sharded by user) celebrities set of author IDs above the follower threshold counts post_id → likes, comments (separate counters, updated asynchronously)

Interviewer pushback:

  • "Why time-sortable post IDs?" → Feeds sort and paginate by recency; IDs that sort by time (like Snowflake IDs) make "newest first" and "after this ID" cheap without extra timestamps.

Memory code: "Posts once, follows both ways, feeds as lists of IDs."