One and Only One Process in a Distributed System
summary
Claims a single canonical process per object is achievable in Elixir by combining OTP registration via :via tuple, distributed coordination with zookeeper + S3 persistence, and ephemeral sequential nodes for lock/leader election. It builds a library called Highlander that creates one process per object, snapshots state to S3, and relies on ZooKeeper to guarantee the first-created node wins; demos show recovery after restarts but warn about dependence on ZooKeeper during network partitions.
AI-written summary · about
chapters (12)
- 0:00Introduction and context
- 2:00Challenges in distribution
- 4:25The case for granular systems
- 5:59Time in distributed systems
- 7:35Process management approaches
- 11:09Zookeeper for consistency
- 13:00Introducing Highlander
- 14:40Highlander implementation
- 17:30Developer experience and usage
- 19:19Modeling shared objects
- 21:23Related technologies and advice
- 23:22Q&A session
related talks
33mDiscovering distributed systems in Elixir
53mIdioms for Building Distributed Fault-tolerant Applications with Elixir
52mConcurrency Oriented Programming in a Modern World
31mAn Elixir View on Processes: (...) to Cluster Discovery
39mAn adventure in distributed programming
42mThe Soul of Erlang and Elixir
35mIt’s An Evolution: Recreating Life With Elixir Processes
39mConcurrency Oriented Programming In A Modern World
