Develop a simple chat app fulfiling below requirements
- group and one-on-one chats.
- same socket instance reconnection after disconnection
- switch between long polling and sockets, incase sockets are not working
- stream back lost messages when user reconnects
- scalable
| Technology | Open source | Purpose |
|---|---|---|
| Socket.io | Yes | Building the RTA (real time application). |
| Node.js | Yes | Quicky developing a scalable backend service to easily implement socket.io. |
| PostgreSQL | Yes | Data source for relational data storage to perform better during heavy write ops. |
| Cassandra | Yes | Highly scalable data source for misc. chat requirements like chat history. |
| React.js | Yes | Building SPA (single page application) for better UX |