What is Facebook Messenger?
Facebook Messenger is a software application which provides text-based instant messaging services to its users. Messenger users can chat with their Facebook friends both from cell-phones and Facebook’s website.
Requirements and Goals of the System
Our Messenger should meet the following requirements:
Functional Requirements:
- Messenger should support one-on-one conversations between users;
- Messenger should keep track of the online/offline statuses of its users;
- Messenger should support the persistent storage of chat history;
Non-Functional Requirements:
- Users should have real-time chat experience with minimum latency;
- Our system should be highly consistent; users should be able to see the same chat history on all their devices;
- Messenger’s high availability is desirable; we can tolerate lower availability in the interest of consistency;
Extended Requirements:
- Group Chats: Messenger should support multiple people talking to each other in a group;
- Push notifications: Messenger should be able to notify users of new messages when they are offline;