Versions Compared
Version | Old Version 7 | New Version 8 |
---|---|---|
Changes made by | ||
Saved on |
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Tip |
---|
The Framework proposed in this space (Alex Xu) is applied to propose a design : Getting started - a framework to propose... |
Introduction
A chat performs different functions for different people. It is important to explore the feature requirements.
Step 1 - Understand the problem and establish design scope
Kind of chat ? 1 to 1 or group chat ? | both |
---|---|
Mobile or Web app ? or both ? | both |
Scale of the app ? start-up or massive scale ? | massive scale : 50 millions per day of active users. |
Limit for a group chat ? | Max 100 people = small group. |
Features ? Support attachment ? | 1 on 1 chat, group chat, online indicator, ONLY supports textes messages. |
Limit of text message ? | Less than 100 000 characters long. |
End-to-end encryption required ? | Not required for now, but maybe. |
Chat history ? | Forever |
Push notifications ? | Yes. |
Multiple device support ? | Yes, can be logged in multiple accounts at the same time. |
On this page.
Table of Contents |
---|
Step 2 - High-level design
For a chat service, the choice of the network protocols is important : HTTP connection could be a good option on the server-side, but the problem occurs on the client-side. There are 3 techniques to simulate a server-initiated connection: polling, long polling and WebSockets.
See polling & long polling in the page References & Glossary for chat system.
WebSockets is the most common solution for sending asynchronous updates from server to client. WebSockets (WS) is used for both sender and receiver sides.
