rlefevre

rlefevre

How Discord Scaled Elixir to 5,000,000 Concurrent Users

How Discord Scaled Elixir to 5,000,000 Concurrent Users

And some discussion on Hacker News about it (including some OTP 20.0 optimizations).

Their published libraries described in the blog post:

  • manifold: Fast batch message passing between nodes for Erlang/Elixir
  • ex_hash_ring: A fast consistent hash ring implementation in Elixir
  • fastglobal: Fast no copy globals for Elixir & Erlang
  • semaphore: Fast semaphore using ETS

At last the praised free book from Fred Hebert: Stuff Goes Bad: Erlang in Anger

Most Liked

adrianrl

adrianrl

Using Rust to Scale Elixir for 11 Million Concurrent Users

Nowadays it seems like they use a faster implementation with NIFs, here’s the library: SortedSet

adamwight

adamwight

The top link has moved to How Discord Scaled Elixir to 5,000,000 Concurrent Users, and the update is at Using Rust to Scale Elixir for 11 Million Concurrent Users . Too bad that the original permalinks don’t redirect!

sorentwo

sorentwo

Oban Core Team

Thanks for the link, that is really handy. I implemented a custom MapSet with Erlang 21+ features which is 25% faster than the native MapSet, I expect this can be an even bigger improvement.

Where Next?

Popular in Discussions Top

Jayshua
I recently came across the javascript library htmx. It reminded me a lot of liveview so I thought the community here might be interested....
New
cvkmohan
The upcoming Phoenix 1.6 release looks very interesting. Became a habit to watch the commits - and - what they are bringing in. phx.gen...
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 53690 245
New
Nvim
Elixir appears to be a superior language to Python. I don’t see any advantage of Python over Elixir. Are there any?
New
Qqwy
Looking at the stacks that existing large companies have used, WhatsApp internally uses Mnesia to store the messages, while Discord uses ...
New
WolfDan
After doing a port from a c++ library to my project in phoenix I’ve seen that I need a faster way to run this algorithm and I found this ...
New
mmmrrr
Just saw that dhh announced https://hotwire.dev/ Is it just me or is this essentially live view? :smiley: Although I like the “iFrame-e...
New
AlexMcConnell
The reason that Rails is as popular as it is is because it’s very easy for relatively inexperienced developers to get a lot of work done....
588 19568 166
New
und0ck3d
Hello everyone! A few days ago I’ve created a topic here about how people were creating CMSs with Elixir and Phoenix. I’ve been studying...
New
dogweather
I wrote this comment on r/haskell, and it’s not popular there. :wink: But I think I’m on to something… Haskell reminds me of Java, and e...
New

Other popular topics Top

Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
dokuzbir
I want to highlight html closing tags when i click a html tag. That works in .html files but doesnt work for html.eex templates. How can...
New
aesmail
Hello guys, I have finally made it. I created an admin interface for a framework. It’s been on my todo list for years and with the curre...
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New
vrod
I am using the Starship cross-shell prompt – it seems pretty nice, but I get some errors: [WARN] - (starship::utils): Executing command ...
New
gausby
I asked this very same question on twitter and got some interesting feedback, but I thought it would be a good question to ask here as we...
1207 39297 209
New
fayddelight
I tried installing elixir 1.11.2 erlang 23.3.4 via asdf in my zsh shell. Enabled the versions locally and globally. When I list them ...
New
romenigld
I am trying to run a deploy with docker and I successfully runned with this command: docker build -t romenigld/blog-prod . but when I t...
New
Brian
What is the proper way to load a module from a file in to IEX? In the python world, doing something like this pretty standard: from ....
New
axelson
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!) This post collects co...
239 47930 226
New

We're in Beta

About us Mission Statement