What NOT to do when building large scale systems in Erlang
summary
Practical anti-patterns and concrete fixes for large Erlang systems: amnesia fails on write‑heavy replicated clusters and net splits cause data loss unless nodes are restarted, native RPC (Rex/EPMD) becomes a bottleneck under tens of thousands of messages/sec, proc_lib crash reports swamp error_logger at scale, and long lived stateful processes trigger GC pauses. The team builds a custom RPC over sockets that avoids Rex and enables overload control and multiple connections (avoiding head‑of‑line blocking) with measurable stability gains.
AI-written summary · about
chapters (12)
- 0:00Start
- 2:33Message Passing
- 3:24Do Not Allow Large Message Queues To Build Up a Process
- 4:00Reduction Count Penalty
- 4:38Suppress Unnecessary Messages
- 10:43Graceful Degradation
- 14:08Native Rpc
- 22:08Garbage Collection
- 33:13Traceability
- 38:11Recap
- 38:26Beware of Native Rpc Limitation
- 38:58Open Source Efforts
related talks
57mMaximising Side Effects When Adopting Functional Programming
33mHigh availability with Elixir and Erlang
47mThe art of challenging assumptions
08mTalks with Brian Troutwine
01h 01mArchitecture Decisions: A Case Study -
56mThe Definition Of Insanity
44mScalable is Awesome, Literally!
54mArchitecture antipatterns and how to beat them 2/2
