home-mixer/README.md
Home Mixer is the main service used to construct and serve Twitter's Home Timelines. It currently powers:
Home Mixer is built on Product Mixer, our custom Scala framework that facilitates building feeds of content.
The For You recommendation algorithm in Home Mixer involves the following stages:
Product Mixer services like Home Mixer are structured around Pipelines that split the execution into transparent and structured steps.
Requests first go to Product Pipelines, which are used to select which Mixer Pipeline or Recommendation Pipeline to run for a given request. Each Mixer or Recommendation Pipeline may run multiple Candidate Pipelines to fetch candidates to include in the response.
Mixer Pipelines combine the results of multiple heterogeneous Candidate Pipelines together (e.g. ads, tweets, users) while Recommendation Pipelines are used to score (via Scoring Pipelines) and rank the results of homogenous Candidate Pipelines so that the top ranked ones can be returned. These pipelines also marshall candidates into a domain object and then into a transport object to return to the caller.
Candidate Pipelines fetch candidates from underlying Candidate Sources and perform some basic operations on the Candidates, such as filtering out unwanted candidates, applying decorations, and hydrating features.
The sections below describe the high level pipeline structure (non-exhaustive) for the main Home Timeline tabs powered by Home Mixer.