Very well articulated Ashish keep growing 💗 . The heartbeat of designingvwhatsapp like application resides in message synchronisation. That's why what you explained above acknowledgement and all .
Great article but I am missing one thing. Conversation and message, none of them have receiver id. When user A sends the message, how does it connect to user B. How does chat server know whom to connect user A?
One question for the group message, Is selecting each member active chat server & forward the message will not cause the latency to increase, how do we make sure group message with low latency ?
Very well articulated Ashish keep growing 💗 . The heartbeat of designingvwhatsapp like application resides in message synchronisation. That's why what you explained above acknowledgement and all .
thank you!
Designing whatsapp. Typo
Thank you so much for this post!!
amazing explanation!!
Too good thanks for sharing
Good Read
Good explanation in easy language
Nice one. Appreciation to your quality work.
Wonderful article, I had a question though, how do chat servers communicate between each other when sending messages?
they are multiple ways they can communicate:
1. Message Queues - Sender's chat server publish messages to receiver's chat server queue
2. gRPC - It might be ideal due to its low latency.
3. HTTP APIs (eg.. REST) - Server handling a user’s message might call another server’s API to forward the message to users connected on that server.
I am not sure, Can server 1 send message directly to server2 by websocket ?
i have a minor doubt in the database design, dont we need a receiverId in the messages table
Do we really require the message table? Why this design shows the table which maintains the state of the message?
Great article but I am missing one thing. Conversation and message, none of them have receiver id. When user A sends the message, how does it connect to user B. How does chat server know whom to connect user A?
Great Article Ashish.
One question for the group message, Is selecting each member active chat server & forward the message will not cause the latency to increase, how do we make sure group message with low latency ?
Hi Ashish, "API Design" section seems to be missing. Was it not included intentionally? Thanks.
It's amazing mate ✨
Really a wonderful article Ashish. I was wondering if you could elaborate WhatsApp communities design. How is it different(if at all) from group chat?