
iX
2 HN recommenders · recommended in 4 months, 2015–2019
54:14 · 31K views · Nov 21, 2014
Rick Reed of WhatsApp speaks at MeetBSD about running a messaging service on FreeBSD and Erlang at huge scale. He covers the stack, tuning and the challenges of millions of connections per host.
Pointed to as a rare look at how a tiny engineering team ran WhatsApp's massive scale on FreeBSD and Erlang.
4 comments from Hacker News
I can personally guarantee to you from direct current experience that there is nothing particularly solved about running services for even 50 million users. Go watch this: this video
It's required because your phone is where your messages are stored. Whatsapp don't retain messages/media after they've been delivered to your phone, which is a compelling privacy feature for many. It's also what allows them to serve such an enormous user base with limited hardware. Their technology stack (FreeBSD/Erlang) is pretty interesting, more info here: 2014 talks by Rick Reed: [LINK] this video Slides: [LINK] There's likely no technical reason why you couldn't use a pc instead of a phone for users that want to use the pc as the primary client (with the phone optionally accessing the DB on the pc in the same way that the desktop client does for the phone). Perhaps they've decided that this is a small and declining market. Edit: Slides for second talk [LINK] 440k connections/sec, 1.1 million msgs/sec, 1 billion images/day, and that was in 2014...
> no big player took to developing cool things on top. Just one data-point, but WhatsApp engineering was adamant that FreeBSD was a key precursor that allowed them to scale 2m+ connections per host on their (rather beefy) boxes: this video > It just shows you that having a technically good solution is irrelevant. True. I've seen many promising projects die/stagnate at the hands of unpopularity, *BSDs wouldn't be the first. Sigh.
There was a talk + slides about WhatsApp FreeBSD usage [1, 2]. At around 23:50 in the video, Rick Reed talks about slide #17, they say they are running 9.1 - 9.3, and looking at 10.1 (not in a hurry as 9 works for them). [1] this video [2] [LINK]