Scaling League of Legends Chat to 70 million Players
summary
Claim: League chat serves ~67 million monthly users, ~7.5 million concurrently, and routes 1 billion events a day. Implementation uses XMPP on a heavily modified ejabberd written in Erlang, rewrites 90–95% of the server code, moves persistence from MySQL to Riak, and implements a server-side CRDT library for conflict resolution. Architecture creates per-session processes, parallelized MUC routing, 96% fewer distributed writes to session tables, hundreds of physical servers, hot code reloads, feature toggles, partial deployments and automated load testing, achieving ~99% uptime.
AI-written summary · about
chapters (24)
- 0:00Introduction
- 0:23Question
- 1:33What is League
- 2:30What is Chat
- 4:30Examples of Chat
- 5:12HighLevel Overview
- 6:20Three Components
- 6:57Protocol
- 8:34Server
- 9:19Erlang
- 10:46Architecture
- 13:46Services
- 14:57Implementation
- 18:37Session Table
- 20:10Erlang VM
- 22:48Datastore
- 25:19Lessons learned
- 28:43Code reload
- 29:47Logging
- 31:35Load Testing
- 32:15Confluence
- 32:47Things will always fail
- 34:11Where are we now
- 35:39Questions
related talks
39mRiot Messaging Service - Message Players Like a Pro
42mPowering 100+ million daily users
53mPowering 100+ million daily users
40mApache RocketMQ - Trillion Messaging in Practice
52mWould Your System Survive a Million Concurrent Players?
49mActiveMQ - Journey to 1 Billion msg/day
49mWhat to Do If You Need to Process a Billion Chaotic Tasks per Day in PHP
31mRouting Billions of Events a Day: How we Do Routing in Schibsted
