Fan-out on write distributes a post to followers when it is published, making feed reads simpler at the cost of more write work. Fan-out on read assembles a feed when someone opens it, avoiding per-follower writes but making each read do more work. For a feed with highly uneven audience sizes, a hybrid often balances the two: precompute feeds for ordinary authors and retrieve posts from very large accounts at read time. The right boundary depends on your workload, not a universal follower-count threshold.
What the choice changes
Fan-out is the distribution or collection of posts that makes a personalized feed available. The central decision is when to assemble that feed: during publishing or during a reader’s request. This is separate from ranking, recommendations, and deciding which eligible posts to show first.
As an Amazon Associate I earn from qualifying purchases.
| Approach | Where feed assembly happens | Main benefit | Main cost |
|---|---|---|---|
| Fan-out on write (push) | When an author publishes | Readers can fetch a prepared timeline with less work on the request path | Each post may require distribution work for many followers |
| Fan-out on read (pull) | When a reader opens the feed | A post is stored for its author without a separate write to every follower | The request must gather and merge posts from followed authors |
| Hybrid | At publish time for some authors, at read time for others | Can limit large per-post fan-outs while avoiding a full pull from every followed account | Requires operating and merging two paths |
Historical Twitter engineering presentation material uses O(n) write and O(1) read labels to illustrate the push trade-off. These are conceptual scaling labels, not measured latency guarantees, service-level targets, or evidence of how any platform works today. Actual costs depend on workload and implementation.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →How fan-out on write works
Publish once, distribute references
The system stores the post as its source record, then asynchronously places its identifier in followers’ inboxes or timelines. A reader can fetch a prepared list of post references rather than querying every followed author on each request. A historical Twitter presentation diagram depicts a write API feeding a fan-out stage and timeline cache, with Redis identified in that cache architecture.
#1 Best Overall
When push fits
- Feed reads are frequent relative to publishing, so moving work to publish time can simplify the hot read path.
- Author audiences are bounded enough that distributing each post is operationally manageable.
- The product can tolerate asynchronous delivery while workers process distribution tasks.
Costs to watch
- Distribution work grows with an author’s audience. A post from a very large account can produce a large burst of downstream tasks.
- Queueing means followers may receive a post at different times rather than simultaneously.
- Fan-out to followers who rarely open the product can spend work on timelines that are never read.
- Prepared timelines consume cache or storage capacity, and changes such as deletes or follow updates must be reflected consistently.
The queueing, dormant-recipient, and storage effects are architectural implications of this design, not measured figures from the historical presentation.
How fan-out on read works
Collect and merge at request time
The system stores posts on each author’s timeline. When a reader requests a feed, it retrieves recent items from followed authors and merges them into a response. This avoids a separate write of every new post into every follower’s feed, but shifts aggregation onto the latency-sensitive read path.
Rank #2
When pull fits
- Some authors have very large audiences, making per-follower distribution for every post costly.
- Many potential recipients are inactive, so distributing to all followers could do work that is never used.
- The product can afford the extra read-time work, including the retrieval and merge across followed accounts.
Costs to watch
- Readers with many followees can trigger more source reads and a more involved merge.
- Latency and resource use depend on follow-list size, data partitioning, caching, and pagination.
- Traffic concentrated on feed reads can make aggregation capacity a bottleneck.
Pull avoids per-follower distribution on each post; it does not make feed assembly free. It moves that work to the request that needs the feed.
Why uneven audiences point to a hybrid
Pure push can become expensive for authors with exceptionally large audiences. Pure pull can become expensive for readers who follow many accounts. When audience and follow counts are skewed, applying one strategy everywhere can put disproportionate pressure on either publishing or feed reads.
Rank #3
A hybrid precomputes inboxes for ordinary authors and retrieves posts from unusually high-follower authors when assembling a reader’s feed. That limits the largest per-post fan-outs while avoiding a full read-time pull across every followed account. The system must merge the prepared timeline with the pulled posts and handle ordering, pagination, deletes, and relationship changes across both paths.
There is no established universal cutoff such as 10,000 followers. Choose a boundary from measured publishing rates, audience distribution, feed-read volume, latency budget, fan-out worker capacity, tolerated delivery lag, and cache or storage cost. Revisit it as those conditions change.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Choose based on your workload
Measure both sides of the path before committing to a design. A conceptual O(n)/O(1) diagram describes scaling direction, not the latency or capacity your service will achieve.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →- Lean toward push when feed reads dominate, audiences are bounded, and the system can absorb asynchronous distribution.
- Lean toward pull when author audiences are very large or many recipients are inactive, and feed reads can tolerate aggregation.
- Consider a hybrid when audience sizes are skewed enough that pushing every post is costly but pulling from every followed author is also expensive.
Benchmark the actual hot paths: publish-to-timeline delivery and feed-request aggregation. Track queue backlog and delivery lag for push; track read latency and work per request across realistic follow-list sizes for pull. Test with the audience and activity distributions your product actually has, rather than relying on a single average.
Best Value
Questions to answer before setting the boundary
- Read/write mix: How often are feeds requested relative to posts published?
- Audience skew: How concentrated are followers among the largest authors?
- Follow-list skew: How many authors does a typical reader follow, and what do high-percentile readers look like?
- Freshness: How much delay between publication and appearance in a feed is acceptable?
- Inactive readers: How much distribution work goes to followers who do not open the feed?
- Operational headroom: Can fan-out workers keep up with bursts, and can feed reads handle the required source retrieval and merge?
- Consistency and storage: How will the system handle deletes, follow or unfollow changes, pagination, and cached timeline capacity?
Historical Twitter engineering slides are useful evidence of the push-versus-pull design pattern at the time they were presented. They do not establish current internals for Twitter/X or any other named service. Treat architecture labels as a starting model, then decide from your own measurements.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

