Opening Scenario

You're rebuilding the "home feed" for a social product: every user sees a chronological (or ranked) view of posts, comments, likes, and shares from accounts they follow. Reads vastly outnumber writes — users refresh the feed dozens of times a day; a popular account posts once. Tail latency on the feed endpoint is the dominant user-experience metric. Current architecture: every read does a giant SQL join across posts, follows, users, and engagement tables and is fundamentally not scaling. The architect says "we need to push to feeds, not pull." Before you sign off on a streaming-pipeline rewrite, you need to understand the design space — push vs pull vs hybrid — and what each costs in compute, storage, and freshness.


Question Progression

1. Why does the obvious "JOIN at read time" not scale?

Question. A feed is just "posts from accounts you follow, ordered by time." Why is that hard?

Reasoning.…

In the full tutorial

  • When to Reach for This

Glossary history

Click dotted jargon to save explanations here.