DriversRecommendedOutdated drivers can make a good PC feel brokenScan driver issues before chasing fixes manually.Scan NowHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan Now×
FREEDOM251

Freedom251 › Blog › backend engineering

Fan-Out on Read vs. Fan-Out on Write: Choosing the Right Trade-Off for a Dynamic Feed

By Freedom251 Team · · 5 min read

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

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.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

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.Support on Ko-Fi

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • 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.

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.

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.

backend engineeringdistributed systemsfan-outfeed architecturesystem design

Leave a Reply

Your email address will not be published. Required fields are marked *

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.