Whatsapp Backend Scalability

Yes you have right, even with consistent hashing you still need to move data from node to an other, but the benefit is to minimize data that should be moved by balancing loads.
If we take riak_core as a good example of consistent hashing, it’s very similar to whatsapp backend from many sides like vnode master => API server and database workers except the nature of persistent data and hashing mechanism, but I think the problem with it (I didn’t read enough code to know) that it can’t make difference between node-down and node-removing and in both cases it will balance vnodes loads via the new hash ring and move the data… but as I said, since the nature of persistent data is not the same, I can’t be sure of anything.
You can take a look at my project, I just implemented the idea and that works fine, but I didn’t try it under high concurrency, the only difference is that I didn’t use the API server which can be a bottleneck, instead of that the frontend server can pick-up directly a worker by double-hashing.