Extend the chat app to support media files such as photos and videos. Media files are significantly larger than text in size. Compression, cloud storage, and thumbnails are interesting topics to talk about.
End-to-end encryption. Whatsapp supports end-to-end encryption for messages. Only the sender and the recipient can read messages. Interested readers should refer to the article in the reference materials [9].
Caching messages on the client-side is effective to reduce the data transfer between the client and server.
Improve load time. Slack built a geographically distributed network to cache users’ data, channels, etc. for better load time [10].
Error handling.
The chat server error. There might be hundreds of thousands, or even more persistent connections to a chat server. If a chat server goes offline, service discovery (Zookeeper) will provide a new chat server for clients to establish new connections with.
Message resent mechanism. Retry and queueing are common techniques for resending messages.
https://bytebytego.com/courses/system-design-interview/design-a-chat-system