Design Facebook Messenger

0%

Editorial Solution

System requirements

Functional

Capacity estimation

Traffic

Storage

API design

The Key Decision: How Do Client and Server Exchange Messages?

Database design

Analyzing the Data

High-level design

Request flows

Sending a Message

Detailed component design

Database Sharding

Trade offs/Tech choices

Server-Side vs. Client-Side Timestamps

Failure scenarios/bottlenecks

Client Network Failure

Future improvements

End-to-End Encryption

Content Moderation

Table of Contents

System requirements

Functional

Capacity estimation

Traffic

Storage

API design

The Key Decision: How Do Client and Server Exchange Messages?

Database design

Analyzing the Data

High-level design

Request flows

Sending a Message

Detailed component design

Database Sharding

Trade offs/Tech choices

Server-Side vs. Client-Side Timestamps

Failure scenarios/bottlenecks

Client Network Failure

Future improvements

End-to-End Encryption

Content Moderation

Premium content

Unlock

Premium content

Unlock

Premium content

Unlock

Premium content

Unlock

Premium content

Unlock

Premium content

Unlock

Premium content

Unlock

Premium content

Unlock

Premium content

Unlock

Premium content

Unlock
Try this problem yourself

Reading a solution is not the same as producing one under interview pressure. Design it on the whiteboard and get scored feedback.

Asked in these interview guides

Company guides that list this problem among their sample questions.


Markdown supported

0%

Editorial Solution

System requirements

Functional

Capacity estimation

Traffic

Storage

API design

The Key Decision: How Do Client and Server Exchange Messages?

Database design

Analyzing the Data

High-level design

Request flows

Sending a Message

Detailed component design

Database Sharding

Trade offs/Tech choices

Server-Side vs. Client-Side Timestamps

Failure scenarios/bottlenecks

Client Network Failure

Future improvements

End-to-End Encryption

Content Moderation

Table of Contents

System requirements

Functional

Capacity estimation

Traffic

Storage

API design

The Key Decision: How Do Client and Server Exchange Messages?

Database design

Analyzing the Data

High-level design

Request flows

Sending a Message

Detailed component design

Database Sharding

Trade offs/Tech choices

Server-Side vs. Client-Side Timestamps

Failure scenarios/bottlenecks

Client Network Failure

Future improvements

End-to-End Encryption

Content Moderation