HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

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
YouTube
50K views · 12 years ago · talk · evergreen

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.

Distributed systemsFunctional programmingSoftware performance & optimization#erlang#whatsapp#scalability#mnesia#freebsd#performance

15 comments from Hacker News

@dpeck2022 · in “Ask HN: What startsups made the best early-tech decisions?”

WhatsApp. Rick Reed’s “That’s Billion with a B” presentation is a good glimpse into their own view of it ▶ this video

RecommendsView on HN
@kornish2020 · in “Scaling Erlang Developer Experience at WhatsApp [pdf]”

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

Strongly recommendsView on HN
@kbenson2018 · in “Jan Koum to leave after broad clashes with Facebook”

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

CitesView on HN
@rdtsc2017 · in “WhatsApp Cofounder on How It Reached 1.3B Users Without Losing Its Focus”

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

RecommendsView on HN
@hellbanner2017 · in “Ask HN: Who is not betting on Elixir and why not?”

I haven't watched but this would be a good guess ▶ this video "Scaling with A B: Erlang and WhatsApp"

CitesView on HN
@hellbanner2017 · in “Ask HN: Who is not betting on Elixir and why not?”

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

CitesView on HN
@kornish2017 · in “How Discord Scaled Elixir to 5M Concurrent Users”

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.

Strongly recommendsView on HN
@otterley2017 · in “A comment left on Slashdot”

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

RecommendsView on HN
@ddeck2016 · in “Introducing WhatsApp's Desktop App”

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...

RecommendsView on HN
@rdtsc2015 · in “Why WhatsApp Only Needs 50 Engineers for Its 900M Users”

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

RecommendsView on HN
@rdtsc2015 · in “Mnesia and LevelDB: Liberating Mnesia from the limitations of DETS”

Klarna (the European payment processor) and WhatsApp architectures are built on Mnesia. Mnesia is Erlang's built-in distributed database. Due to its age it has a few bad corner cases, that could be fixed if it just had a better backend (the front-end API is nice, well designed, supports transactions, is built-in to the lanauge). So this effort brought in the ability to have a better backend, and make Mnesia a better option as a general purpose distributed database. Here is an talk on how WhatsApp uses Mnesia: Erlang Factory 2014 - That's 'Billion' with a 'B': Scaling to the Next Level at WhatsApp ▶ this video Here is an example of using Mnesia: link

CitesView on HN
@ddeck2015 · in “WhatsApp doesn't understand the web”

I believe the issue is that unlike web chats and apps like Telegram, Whatsapp doesn't store conversations on their servers beyond what is required to deliver messages to the required destination device(s). This presents obvious problems with having not just a web client, but any client other than the main device, since the main device is the only store of the existing conversations. New messages sent also need to be synchronized across devices, which I presume is why it's required to keep your phone connected to the Internet. Otherwise Whatsapp would need keep conversations on their servers until they could be synced, which is very much not their model. Details on their architecture: ▶ this video link

CitesView on HN
@rbsn2014 · in “Yahoo Mail moving to React”

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

RecommendsView on HN
@rdtsc2014 · in “Mnesia and CAP”

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

RecommendsView on HN
@rdtsc2014 · in “Revisiting 1M Writes per second”

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.

Strongly recommendsView on HN
Rick Reed - WhatsApp: Half a billion unsuspecting FreeBSD users54:14

Rick Reed - WhatsApp: Half a billion unsuspecting FreeBSD users

iX
31K views • 11 years ago
GigCityElixir23 - Bryan Hunter1:01:46

GigCityElixir23 - Bryan Hunter

Groxio
10K views • 3 years ago
"Systems that run forever self-heal and scale" by Joe Armstrong (2013)1:10:23

"Systems that run forever self-heal and scale" by Joe Armstrong (2013)

Strange Loop Conference
85K views • 5 years ago
Erlang: The Movie9:58

Erlang: The Movie

dawsdesign
159K views • 19 years ago
The Soul of Erlang and Elixir • Sasa Juric • GOTO 201942:03

The Soul of Erlang and Elixir • Sasa Juric • GOTO 2019

GOTO Conferences
384K views • 7 years ago
Erlang: The Movie11:32

Erlang: The Movie

uncertainyesterday
175K views • 14 years ago
Erlang Factory SF 2016 Keynote  Phoenix and Elm – Making the Web Functional55:28

Erlang Factory SF 2016 Keynote Phoenix and Elm – Making the Web Functional

Erlang Solutions
23K views • 10 years ago
Erlang: The Movie (Fixed Audio)11:32

Erlang: The Movie (Fixed Audio)

CH1LLW4VE
43K views • 9 years ago
Kilim: Fast, lightweight, cheap message passing in Java.45:11

Kilim: Fast, lightweight, cheap message passing in Java.

Google TechTalks
33K views • 18 years ago
Let's #TalkConcurrency Panel Discussion with Sir Tony Hoare, Joe Armstrong, and Carl Hewitt1:06:45

Let's #TalkConcurrency Panel Discussion with Sir Tony Hoare, Joe Armstrong, and Carl Hewitt

Erlang Solutions
13K views • 7 years ago
Solid Ground // Saša Jurić35:15

Solid Ground // Saša Jurić

EMPEX Conference
14K views • 9 years ago
Seattle Conference on Scalability: YouTube Scalability52:41

Seattle Conference on Scalability: YouTube Scalability

Google TechTalks
30K views • 19 years ago
"Unison: a new distributed programming language" by Paul Chiusano41:06

"Unison: a new distributed programming language" by Paul Chiusano

Strange Loop Conference
45K views • 7 years ago
Scaling the Linear Sync Engine1:06:08

Scaling the Linear Sync Engine

Linear
37K views • 3 years ago
Zach Tellman - Everything Will Flow40:13

Zach Tellman - Everything Will Flow

ClojureTV
27K views • 11 years ago
Scalability at YouTube38:43

Scalability at YouTube

Next Day Video
51K views • 14 years ago
Joe Armstrong & Alan Kay - Joe Armstrong interviews Alan Kay1:16:55

Joe Armstrong & Alan Kay - Joe Armstrong interviews Alan Kay

Erlang Solutions
76K views • 9 years ago
Twitter’s Quest for a Wholly Graal Runtime by Chris Thalinger50:11

Twitter’s Quest for a Wholly Graal Runtime by Chris Thalinger

Scala Days Conferences
3K views • 8 years ago
The Language of the System - Rich Hickey1:02:50

The Language of the System - Rich Hickey

ClojureTV
174K views • 13 years ago
Alan Kay - Programming and Scaling56:39

Alan Kay - Programming and Scaling

Colin McDonnell
36K views • 11 years ago