Swarm is a distributed process registry for Elixir/Erlang that lets you register and discover processes across a cluster as if they were on a single node. It focuses on automatic distribution and rebalancing, so when nodes join or leave, Swarm can move work and hand off state to keep the system stable. The library offers a global name registry, conflict resolution for name ownership, and hooks for reacting to membership changes. Its design embraces OTP principles, using supervised processes and fault-tolerant messaging to keep the registry resilient under failures. Developers can co-locate Swarm with their existing supervision trees to scale workers horizontally without writing custom clustering code. Typical use cases include globally unique workers, sharded consumers, and presence-like coordination where node churn is expected. By turning registry and handoff into configuration and callbacks, Swarm reduces the complexity of multi-node deployments.
Features
- Distributed global process registry across clusters
- Automatic distribution and reassignment of worker processes
- Handles dynamic node membership gracefully
- High scalability for large numbers of process registrations
- Avoids issues of leader‑election-based registries like global or gproc
- Provides API functions