Design a Chat Service

Last updated: July 22, 2025

Quick Overview

Design a fault-tolerant chat system that handles millions of requests. Discuss trade-offs in consistency, availability, and performance.

Waymo
System Design
Software Engineer
Waymo
July 22, 2025
Software Engineer
Onsite
System Design
Medium

4

6

1,295 solved


Design a fault-tolerant chat system that handles millions of requests. Discuss trade-offs in consistency, availability, and performance.

Waymo asks this during the Onsite to assess your understanding of the full ML lifecycle. They want to see how you translate a business problem into an ML objective, design the feature pipeline, and plan for model monitoring and retraining.

What the Interviewer Expects
  • Define clear ML objectives with appropriate loss functions and metrics
  • Design a comprehensive feature engineering pipeline
  • Discuss model selection with trade-offs (complexity vs interpretability vs latency)
  • Plan online and offline evaluation strategies including A/B testing
  • Address serving infrastructure: batch vs real-time, latency requirements
  • Consider data quality, labeling strategy, and feedback loops
Key Topics to Cover
Monitoring and model degradation detection
Data collection and labeling strategy
A/B testing and experimentation
Model selection and architecture
How to Approach This
  1. Start by clarifying functional and non-functional requirements with the interviewer.
  2. Estimate the scale: QPS, storage, bandwidth. This drives your design decisions.
  3. Draw a high-level architecture first, then deep dive into 1-2 critical components.
  4. Discuss trade-offs explicitly (e.g., consistency vs availability, SQL vs NoSQL).
  5. Address failure scenarios, monitoring, and how the system handles 10x traffic spikes.
Possible Follow-up Questions
  • How would you ensure fairness and reduce bias in the model?
  • How would you handle the cold start problem?
  • What would you do if model performance degrades over time?
  • How would you handle a 10x increase in prediction requests?
Practice a Similar Problem on Codemia

Solve a related problem with our interactive workspace, get AI feedback, and view detailed solutions.

Solve on Codemia
Sample Answer
Requirements

Functional Requirements

  1. Real-time Messaging: Users should be able to send and receive messages instantly.
  2. User Presence: Display online/offline status of users.
  3. *Message History...
Capacity Estimation

Assuming Waymo has 10 million active users and each user sends an average of 5 messages per day:

  • Total Messages per Day: 10,000,000 users * 5 messages/user = 50,000,000 messages/day
  • **Peak Loa...

Submit Your Answer
Markdown supported

Related Questions