DoorDash ML System Design: Multi-Channel Restaurant Recs
Question Description
Overview
You are asked to design a multi-channel restaurant recommendation system for a food delivery and review platform (think DoorDash/Yelp). The system should produce personalized suggestions for three channels: an in-app homefeed, real-time push notifications, and batched email campaigns. Focus on architecture, data flow, candidate generation, ranking, and channel-specific serving constraints (latency, batch vs. streaming, and content format).
High-level flow
Start with data ingestion (user profiles, order history, restaurant metadata, real-time signals like location and wait time) into a feature store and event stream. Build an offline training pipeline for candidate generation and ranking models, plus an online serving stack (low-latency caches, model servers, real-time feature retrieval). Implement a feedback loop that captures clicks, orders, and ratings back into your training data and online features for continuous learning.
What to show in an interview
You should explain candidate generation (collaborative, content-based, and context-aware filters), ranking with personalized and business-aware features, and exploration-exploitation (e.g., contextual bandits) to surface diverse options. Address channel tailoring: sub-100ms serving for homefeed/push (caching, approximate nearest neighbors), geofence-triggered push logic, and batched curation for email. Cover scalability, reliability (redundant model endpoints, graceful degradation), monitoring, A/B testing, and strategies for cold-start and diversity. Use concrete trade-offs and metrics (CTR, conversion, latency, availability) to justify design choices.
Common Follow-up Questions
- •How would you design an online feature store and low-latency feature retrieval to meet <100ms requirements for homefeed and push?
- •Describe how you'd implement exploration vs. exploitation (e.g., contextual bandits) to surface diverse restaurants while optimizing conversion.
- •How do you handle cold-start for new users and new restaurants across different channels (homefeed vs. email)?
- •What metrics and A/B test designs would you use to evaluate model updates and channel-specific recommendation changes?
- •How would you design a fault-tolerant serving layer and graceful degradation strategy if the real-time model service is unavailable?
Related Questions
Explore More Questions
Practice This Question with AI
Get real-time hints, detailed requirements, and insightful analysis of the question.