🔄 Pipeline Visualization

~1500
Candidates In
6
Pipeline Stages
~50
Posts Out
📱
1. Feed Request
User opens For You tab
User ID Extracted from session
Features Loaded Interests, Following, History
Request Limit ~100 posts
2. Thunder (In-Network)
Posts from accounts you follow
Source Following Timeline
Candidates ~500 posts
Max Age 7 days
Weight Factor 1.0× (full weight)
thunder/realtime_query.rs
→ Get recent posts from followed users
→ Apply freshness filter (7 day max)
→ Return candidate pool
🔥
3. Phoenix (Out-of-Network)
ML-based content discovery
Source SimClusters + Social Graph
Candidates ~1000 posts
Model Grok Transformer
Weight Factor 0.7× (OON discount)
phoenix/ranker.py (JAX)
→ SimClusters user embedding
→ Grok engagement prediction
→ Return discovery candidates
🚫
4. Filtering
Remove spam, blocks, duplicates
Input ~1500 candidates
Spam Filtered ~200 removed
Blocked/Muted User-specific removal
Output ~1200 candidates
⚖️
5. Weighted Scoring
Apply algorithm weights
Reply Weight ×27.0
Profile Click ×12.0
Bookmark ×4.0
Report Penalty ×-369.0
home-mixer/scorers/weighted_scorer.rs
Score = Σ (weight × P(action))
+ SIMD optimization
+ Author diversity decay
6. Selection & Serving
Top K posts to your feed
Input ~1200 scored
Top K Selection ~100 selected
Ad Injection Every 4-5 posts
Output ~50 posts (page 1)
Color Key
Input / Candidates
Output / Weight
Process / Stage
Penalty / Removed