Ranked At Read Time

X assembles the For You timeline at request time: candidate sources are queried, a heavy ranker scores the pool, then visibility filters run, then Home Mixer assembles the response.

A proposal arrives: precompute each user's ranked list nightly, store it in a key value store, and serve the timeline as a single read. Assume the scoring model can be run offline and that storing a few hundred bytes per user is affordable.

What is the strongest objection?

A

Out-of-network sourcing needs a live graph traversal, so none of the pipeline can be precomputed.

B

A block, mute, suspension or legal takedown that lands after the precompute would still be served, so visibility filtering has to run on the read path anyway, which removes most of the saving.

C

Storage: hundreds of millions of users times a thousand candidates each is more than any key value store can hold.

D

Ranking models cannot be evaluated in batch, because their features depend on the request.