Design of Facebook Messenger
Now let’s discuss the overall architecture of the app. Specifically, let’s see how we can send messages from one user to another:
- We have two users and we want to send a message between them.
- We need to use a chat server application, in this case, because on the internet it’s actually really hard to establish a direct connection from one user to another and to make that connection reliable.
- We also want to support things like storing and retrieving chat history.
- So we need a chat server in order to establish the connection and store messages so that they can be retrieved later. A connection should be established between the two users and the chat server.
Designing Facebook Messenger | System Design Interview
We are going to build a real-time Facebook messaging app, that can support millions of users. All the chat applications like Facebook Messenger, WhatsApp, Discord, etc. can be built using the same design. In this article, we will discuss the high-level architecture of the system as well as some specific features like building real-time messaging, group messaging, image and video uploads as well and push notifications.
Important Topics for Facebook Messenger System Design
- Requirements
- Design of Facebook Messenger
- Communication Protocol for Facebook Messenger
- API Used for Facebook Messenger
- Database Design for Facebook Messenger
- Data Types
- Scalability for Facebook Messenger
- Conclusion
Contact Us