# bitwalker/swarm

Easy clustering, registration, and distribution of worker processes for Erlang/Elixir

Repository: https://github.com/bitwalker/swarm
Canonical: https://ross.abutalabs.com/products/bitwalker-swarm
Language: Elixir
License: MIT
License Family: permissive
Topics: clustering, erlang-distribution, process-registry, elixir
Last push: 2022-06-22T11:00:39+00:00

## Health v2 (maintenance only)
Score: 32/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 35, longevity 100
- inputs: {"age_days": 3691, "days_push": 1533, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1253, forks 110 (observed 2026-08-28T04:04:08.563224+00:00)

## What it is
Swarm is a global distributed process registry and worker distribution library for Erlang/Elixir, similar to gproc but designed for dynamic node membership and high-volume process registration. It handles distributing, locating, and routing messages to processes across a cluster, including rebalancing on topology changes.

## Use cases
- register and find processes across an Erlang cluster
- distribute worker processes across nodes in Kubernetes
- route messages to processes from anywhere in a cluster
- restart or relocate processes when a node goes down
- manage large volumes of device connection processes
- avoid leader election deadlocks in dynamic clusters

## When to choose
- you run a cluster of Erlang/Elixir nodes with dynamic membership (e.g., under Kubernetes)
- you need a global process registry that scales to large registration volumes
- you want worker processes distributed and rebalanced across cluster topology changes

## When to avoid
- you need strongly consistent registry state rather than eventual consistency
- you need autoclustering without adding the separate libcluster package
- your project is not on the BEAM (Erlang/Elixir) platform

## Facets
- artifact type: library
- maturity: maintenance
- function: concurrency, microservices, routing
- domain: microservices, backend, developer-tools
- platform: elixir, jvm, cloud
- tags: process-registry, erlang-distribution, clustering, distributed-registry, worker-distribution, eventual-consistency, elixir, linux, docker, kubernetes

## Member repositories
- bitwalker/swarm (main) score 32

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:08.563224+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T05:07:27.956855+00:00, confidence not recorded.
  - readme: https://github.com/bitwalker/swarm (fetched 2026-08-28T04:04:08.563224+00:00, sha b474a12283c5)
- Data as of 2026-08-30T08:39:29.467469+00:00.
