4 ms·
I think one thing to consider is that WhatsApp is probably by nature a scalable application. It is in the end, simply a client app that sends data to other clie
by Traster 5y ago
I think one thing to consider is that WhatsApp is probably by nature a scalable application. It is in the end, simply a client app that sends data to other client apps. So by nature, you scale in parallel very well, there are no 1-all communications. So unlike something like facebook where the data all needs to go to a central server and be polled by an unknown (but potentially arbitrary large) number of clients, in this case you have a huge number of point to point communications. It also means your server application can be largely stateless.
I'm not saying that it's an easy problem to solve, but it is a much easier problem to solve than a lot of other applications.
- crate_barre 5y agoTo add to this, not only is it a simpler problem, but they stood on the shoulders of giants that already solved it. They used ejabberd, a full-featured xmpp server written in Erlang. Imagine half your job already done for you. Granted, they heavily customized it by this point, but they did a great job picking the right off the shelf solution to begin with.
- lampe3 5y agoI fully agree here. Sending messages to a known (small) number of people is a solved problem for a long time. Email for example. With WhatsApp, it is even easier than email because WhatsApp is a closed system, and you can optimize. They used an uncommon setup? Okay cool. How does this help me? or any other company? I'm not sure what I should learn from this story? The only thing is: Feature creep is bad.
- Tepix 5y agoWhy do you assume that WhatsApp uses point-to-point connections? My assumption is that most devices cannot talk to each other directly and require central servers.
- hbn 5y agoI could be wrong but I don't think he was saying "point-to-point communication" in the technical aspect of the term (i.e. peer-to-peer). Rather, just making the point that they're not storing tons of data on their server that has to be polled on demand by an unknown amount of clients forever. Even if there's a server between the users, once they receive a message and pass it onto whoever necessary, their job is done and they don't need to worry about that data any more.
- namdnay 5y ago> It is in the end, simply a client app that sends data to other client apps That's not the case. Consider the "one tick" messages - they must be on a server somewhere. One tick means they've left your phone but aren't yet on (all) the recipients' phones
- Drew_ 5y agoServers proxy the message yes but once all recipients (maybe a dozen clients in the worst cases) receive the message, the server can drop the data once and for all. No need to optimize for harder problems like search, caching, or recommender systems.