Discovering distributed systems in Elixir
summary
Explains how Elixir/Erlang forms a fully connected mesh over a single TCP connection, why PIDs are cluster‑unique, and why message delivery is at‑most‑once semantics with ordering only preserved between two processes. Shows that default distribution hits a practical limit of ~50 nodes from connection and heartbeat costs, how :global and :pg2 use distributed transactions and monitors (leading to slow writes and partitioned inconsistent state), and why Phoenix Presence/pubsub can drop or reorder messages across partitions.
AI-written summary · about
chapters (10)
- 0:00Introduction to distribution
- 1:09Cluster connectivity basics
- 3:42Location transparency
- 8:05Messaging guarantees and lags
- 12:01Global process registration
- 17:33Process groups and PubSub
- 21:28Consistency strategies
- 23:40Rethinking distributed design
- 26:27Conclusion and trade-offs
- 28:22Q&A session
related talks
53mIdioms for Building Distributed Fault-tolerant Applications with Elixir
39mAn adventure in distributed programming
23mCracking the PubSub Code. Elixir's Key to Scalable Real-Time Systems
35mpg2 and You: Getting Distributed with Elixir
32mGetting distributed with Firenest
41mIdioms for building fault-tolerant applications with Elixir
31mAn Elixir View on Processes: (...) to Cluster Discovery
30mHow to build distributed applications with Erlang
