A good recommendation can look like a model simply guessed your interests. But before scoring, the system has chosen where to search and which posts are eligible. After scoring, it still needs to assemble a useful list.
Follow a feed refresh: retrieve candidates, score them, and assemble a list. Then return to the design choices—why split the work this way, and what changes with another model or index?
Separate requests, updates, and training
This is a teaching architecture, not Twitter / X’s production topology. Switch among 3 paths to separate a refresh, a content update, and a training run. On the request path, change one condition and trace where candidates disappear.
Remember: a box is not necessarily a separate service, and refreshing an item vector is not retraining a model. The architecture guide explains both.
Pick the question you came with
For a first pass, try architecture guide → 01 → 02 → 03 → 05. Return to 04 for newer approaches and 06–08 for design details. You do not need to read every source file first.
One question per episode
| Chapter | Question | Try this after reading |
|---|---|---|
| 00 · Architecture guide | How do serving, updates, and learning connect? | Label when each component runs and what it produces |
| 01 · One refresh | Why isn’t recommendation one model? | Trace a candidate’s source, features, and outcome |
| 02 · Multiple sources | What does another source actually add? | Check unique relevant candidates at a fixed budget |
| 03 · Ranking and lists | Why can good posts make a dull list? | Adjust the penalty; separate scores from selection |
| 04 · Place the new method | Which stage does a Transformer or generative retriever replace? | Put the model back into the architecture |
| 05 · Evaluation lab | Did the model change, or just the score? | Switch the pool, Top-K, and denominator |
| 06 · Why two towers | What computation is saved, and what interaction is lost? | Compare a mixed query with separate queries |
| 07 · Component choices | What could implement the same responsibility? | State constraints, alternatives, and stopping conditions |
| 08 · Engineering the path | Can a successful response still be wrong? | Check compatibility, timeouts, freshness, and rollback |
Each note compares alternatives and works through computation, latency, or candidate budgets. The small teaching datasets explain mechanisms; whether real users prefer the results requires separate validation.
Public sources used in this series
| Material | How it is used | What it does not establish |
|---|---|---|
| Twitter 2023 · ee5e7fc | Public-component reading in 01–03 | Today’s complete X production architecture |
| X public snapshot · 77d431a | Version comparison in 04, checked 2026-09-30 | Real training data, all experiment settings, or production gains |
| Official papers and engineering material | Compare the assumptions behind designs | One company’s approach as the only answer |
| Our diagrams, code, and interactions | Examine a mechanism using invented data | Any company’s business results or internal implementation |
Links pin revisions rather than silently combine different generations into a “current system.” No internal projects, private data, or confidential interview material appear here.
Try designing your own recommendation feed. If vectors are unfamiliar, start with embeddings and similarity.