One request. Many systems. One visible timeline.
Follow the open pipeline from viewer context through parallel retrieval, Phoenix predictions, weighted ranking, slate adjustments, visibility rules, and final blending.
Interactive architecture explorer
Trace request flow—or switch to the labeling path.
stage · query hydratorsquery hydratorshome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L224component · query hydratorsuser_action_aggregation_clienthome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L225component · query hydratorsuser_action_aggregation_clienthome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L228component · query hydratorsBlockedUserIdsQueryHydratorhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L231component · query hydratorsMutedUserIdsQueryHydratorhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L234component · query hydratorsFollowedUserIdsQueryHydratorhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L237component · query hydratorsSubscribedUserIdsQueryHydratorhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L240component · query hydratorsCachedPostsQueryHydratorhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L243component · query hydratorsMutualFollowQueryHydratorhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L246component · query hydratorsUserDemographicsQueryHydratorhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L249component · query hydratorsfollowed_grok_topics_clienthome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L252component · query hydratorsfollowed_starter_packs_clienthome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L255component · query hydratorsuser_installed_apps_clienthome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L258component · query hydratorsengagement_signals_clienthome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L261component · query hydratorsengagement_signals_clienthome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L264component · query hydratorsImpressionBloomFilterQueryHydratorhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L267component · query hydratorsIpQueryHydratorhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L270component · query hydratorsuser_inferred_gender_store_clienthome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L271stage · sourcessourceshome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L315component · sourcesThunderSourcehome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L316component · sourcesTweetMixerSourcehome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L317component · sourcessimclusters_ann_clienthome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L318component · sourcesPhoenixSourcehome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L319component · sourcesPhoenixTopicsSourcehome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L320component · sourcesPhoenixMOESourcehome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L321component · sourcesCachedPostsSourcehome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L322stage · hydratorshydratorshome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L325component · hydratorsInNetworkCandidateHydratorhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L326component · hydratorsBidirectionalFollowHydratorhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L327component · hydratorsCoreDataCandidateHydrator::new(tes_client.clone()).awaithome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L330component · hydratorsQuoteHydrator::new(tes_client.clone(),socialgraph_client.clone()).awaithome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L331component · hydratorsMediaInfoHydrator::new(media_info_cache_client).awaithome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L332component · hydratorsSubscriptionHydrator::new(tes_client.clone()).awaithome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L333component · hydratorsGizmoduckCandidateHydrator::new(gizmoduck_client).awaithome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L334component · hydratorsBlockedByHydrator::new(socialgraph_client).awaithome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L335component · hydratorsFilteredTopicsHydratorhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L336component · hydratorsLanguageCodeHydrator::new(tes_client.clone()).awaithome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L339component · hydratorsEngagementCountsHydrator::new(engagement_counts_client).awaithome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L340component · hydratorssid_clienthome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L341stage · filtersfiltershome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L344component · filtersDropDuplicatesFilterhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L345component · filtersCoreDataHydrationFilterhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L346component · filtersparams::MAX_POST_AGEhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L347component · filtersSelfTweetFilterhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L348component · filtersOONRetweetReplyFilterhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L349component · filtersOONNsfwSimclustersFilterhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L350component · filtersRetweetDeduplicationFilterhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L351component · filtersIneligibleSubscriptionFilterhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L352component · filtersPreviouslySeenPostsFilterhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L353component · filtersPreviouslySeenPostsBackupFilterhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L354component · filtersPreviouslyServedPostsFilterhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L355component · filtersMutedKeywordFilter :: new ()home-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L356component · filtersAuthorSocialgraphFilterhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L357component · filtersVideoFilterhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L358component · filtersTopicIdsFilterhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L359component · filtersNewUserMinEngagementFilterhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L360component · filtersInventoryHoldoutFilterhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L361stage · scorersscorershome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L396component · scorersPhoenixScorerhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L396component · scorersRankingScorerhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L396component · scorersVMRankerhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L396stage · post selection hydratorspost selection hydratorshome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L400component · post selection hydratorsVFCandidateHydrator::new(strato_vf_client.clone(),xai_vf_client.clone()).awaithome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L401component · post selection hydratorsAdsBrandSafetyVfHydratorhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L404component · post selection hydratorsTweetTypeMetricsHydrator :: new ()home-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L407component · post selection hydratorsFollowingRepliedUsersHydratorhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L408component · post selection hydratorsMutualFollowJaccardHydratorhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L409component · post selection hydratorsTopicFeedbackContextHydratorhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L412stage · post selection filterspost selection filtershome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L417component · post selection filtersVFFilterhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L418component · post selection filtersAncillaryVFFilterhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L419component · post selection filtersDedupConversationFilterhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L420stage · side effectsside effectshome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L424component · side effectsphoenix_clienthome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L425component · side effectsreranking_kafka_clienthome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L430component · side effectsredis_clienthome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L431component · side effectsScoredStatsSideEffecthome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L432component · side effectsAuthorServedMetricsSideEffecthome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L433component · side effectsMutualFollowStatsSideEffecthome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L434component · side effectsDebugSideEffecthome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L435component · side effectsphoenix_request_cache_redis_atla_clienthome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:L436
Important boundaries
Retrieval, ranking, and visibility answer different questions.
Retrieval asks: what could be relevant?
Thunder covers followed accounts; Phoenix and SimClusters broaden the pool. Source does not decide the final order.
View source on GitHubRanking asks: what should appear first?
Phoenix predictions feed RankingScorer, slate-aware adjustments, VMRanker, and Top-K selection.
View source on GitHubVisibility asks: may this remain for this viewer?
Labels and ordered rules can allow, interstitial, or drop a candidate after its ranking work has already happened.
View source on GitHubNext lens