back_office_ops · workflow

Rex: Medium's Go recommendation microservice for personalized story feeds

Medium's Node.js-based recommendation system was too slow and could only rank around 150 candidate stories per feed request, with homepage feed generation taking up to seconds.

How it works
Common implementation structure
How this type of workflow is generally built, generalized across documented cases — not tied to any one vendor's stack. Click any stage to read what happens there. Specific products that implement these stages appear in “Tools commonly seen” below.
Stage 1 · Multi-source story aggregation
Multiple story providers source candidate stories a user may enjoy, based on signals like network connections, reading history, and followed topics.
Tools used
GoRedisScalaNode.jscollaborative filtering
Outcome

Rex can rank 10x more candidate stories per feed request, and feed creation now takes less than one second for 95% of requests.

What failed first

Node.js's single-threaded event loop caused CPU starvation under the heavy I/O and computation load required to build ranked feeds; technical debt also made testing and iterating on recommendation strategies slow.

Results
Time savedless than one second for 95% of requests
Volume10x
Source

https://medium.engineering/rex-mediums-go-recommendation-microservice-e077bc9582a

How we source this →

Grounding & classification
Source type: technical build writeup
24 fields verified against source quotes.
personalizationpredictive analyticsrecommendation systemknowledge basebuilder submittedfailure mode describedmetric backednamed customerproduction runtime claimedtools describedworkflow describedmediacycle time reductionthroughput increasetechnical build writeupback office opsextract classify route