Erlang Factory 2014 - That's 'Billion' with a 'B': Scaling to the Next Level at WhatsApp
Erlang Solutions6 HN recommenders · recommended in 10 months, 2014–2022
talk · advanced · evergreen · 2014–2022 on HN
Rick Reed of WhatsApp explains at Erlang Factory 2014 how the service scaled to billions of messages with a very small engineering team. He covers the FreeBSD and Erlang stack, Mnesia usage, server counts and bottleneck work.
The go-to talk showing how Erlang let a tiny team run a massive messaging system.
Up next
5 mo on HNYou are being misled about renewable energy technology.
Technology Connections
12 HN recommender · 2026–2026
7 mo on HNWhat Really Happened During the Texas Power Grid Outage?
Practical Engineering
6 HN recommender · 2021–2026
3 mo on HNPredatory Lending: Last Week Tonight with John Oliver (HBO)
LastWeekTonight
4 HN recommender · 2014–2022
3 mo on HNMatt Might - Winning the War on Error Solving the Halting Problem and Curing Cancer
Curry On!
3 HN recommender · 2017–2019
8 mo on HN"The Mess We're In" by Joe Armstrong
Strange Loop Conference
10 HN recommender · 2014–2025
7 mo on HNJoe Armstrong & Alan Kay - Joe Armstrong interviews Alan Kay
Erlang Solutions
6 HN recommender · 2016–2026
2 mo on HNEric Cline | 1177 BC: The Year Civilization Collapsed
The Institute for the Study of Ancient Cultures
2 HN recommender · 2016–2020
2 mo on HNComputer Science - A Guide for the Perplexed • Joe Armstrong • GOTO 2018
GOTO Conferences
3 HN recommender · 2019–2021
14 mo on HNThe Soul of Erlang and Elixir • Sasa Juric • GOTO 2019
GOTO Conferences
16 HN recommender · 2019–2024
11 mo on HN"Testing Distributed Systems w/ Deterministic Simulation" by Will Wilson
Strange Loop Conference
12 HN recommender · 2014–2024
9 mo on HN"Turning the database inside out with Apache Samza" by Martin Kleppmann
Strange Loop Conference
9 HN recommender · 2015–2025
9 mo on HNThe Language of the System - Rich Hickey
ClojureTV
10 HN recommender · 2013–2025
12 comments from Hacker News
One of my favorite talks is by Rick Reed about scaling Erlang at WhatsApp. What an absolute savage. He flies through an articulate and in-depth curriculum on system performance and bottleneck mitigation. The talk is called "That's 'Billion' with a 'B'" and makes for a great lunchtime watch: ▶ this video
Not sure why this comment saw a couple downvotes earlier. mbesto is correct: for most startups, most of the time, competitive advantage doesn't come from the underlying tech stack. To make a general statement, most things could be done similarly on any of several platforms. However, when product requirements match exceptionally well with a specialized technology, you can see things that would simply be infeasible or extremely tough using a different stack. WhatsApp + Erlang was one of those cases (watch this talk and imagine trying to recreate that system with only a handful of server engineers using any other tech: ▶ this video ). Discord + Elixir appears to be another. Curious if anyone has any examples that spring to mind from outside the highly concurrent messaging space.
My other favorite "scalability" study is from WhatsApp: ▶ this video That's 'Billion' with a 'B': Scaling to the Next Level at WhatsApp (that walk title was create before the acquisition and was mean to imply message count, after the acquisition it got a secondary meaning). The one thing that is fascinating about it, is how small their team was compared to the volume and complexity of the operation.
WhatsApp. Rick Reed’s “That’s Billion with a B” presentation is a good glimpse into their own view of it ▶ this video
Here is the description of their stack and how Erlang helped them by Rick Reed at Erlang Factory: ▶ this video Here is Jamshid Mahdavi talking about their stack as well but focusing on development, testing and shipping code. Some of the stuff they do will surprise you if you've been at a shop with a large QA team and deployment pipelines with many stages. link
Here's a great talk from Rick Reed (a former mentor of mine at Yahoo!) about how WhatsApp scaled their Erlang infrastructure: link Here's another talk: ▶ 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: ▶ this video link 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...
Not "parent" but search for Erlang Factory talks they talk about it. Here is one from Rick Reed. He explains how the product works : ▶ this video
Just to follow up on topic of WhatsApp and Erlang, here is a presentation given at Erlang Factory 2014 about their goals with scaling WhatsApp to billions of simultaneous users. ▶ this video
Unrelated, but maybe interesting: WhatsApp was running Mnesia and made it work fantastically. Especially with such a small team of engineers. Here is a video of Rick Reed talking about how they did it (hint it is not a one monolithic Mnesia cluster). ▶ this video
There's a talk one of the engineers gives[1] (that someone else posted here so I'm watching it) about their architecture that's published in March of 2014, and in it he talks about ~550 servers, which includes 250 multimedia servers and 150 chat servers. The only places he mentions 16 is when he talks about the "multimedia database". I think there were 16 sharded database servers. 1: ▶ this video
Yes, I understand, I was just wondering if Erlang would be considered a "proven language". From my (limited) Erlang experience, Erlang & Elixir have the same core functionality. Elixir has a "nicer" syntax (I prefer Erlang's syntax but most devs I've talked to like Elixir's). So if Elixir isn't proven but the concurrency model & programming paradigms make sense, maybe Erlang is a good choice. * WhatsApp Scaling to 1 Billion users in erlang: ▶ this video * link