Design a Chat Service

Last updated: December 9, 2025

Quick Overview

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

Plaid
System Design
Software Engineer
Plaid
December 9, 2025
Software Engineer
Technical Screen
System Design
Medium

269

13

4,609 solved


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

Plaid asks this during the Technical Screen 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
Data collection and labeling strategy
A/B testing and experimentation
Monitoring and model degradation detection
Feedback loops and model retraining
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 debug a model that works well offline but poorly online?
  • How would you handle a 10x increase in prediction requests?
  • What would you do if model performance degrades over time?
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 can send and receive messages instantly.
  2. Group Chats: Support for one-on-one and group chat functionalities.
  3. Message History...
Capacity Estimation

Back-of-Envelope Calculations

  1. User Base: Assuming 5 million active users.
  2. Messages per User: Average of 10 messages per user per day.
  3. Total Messages: 5 million users * 10 mess...

Submit Your Answer
Markdown supported

Related Questions