# discord/manifold

Fast batch message passing between nodes for Erlang/Elixir.

Repository: https://github.com/discord/manifold
Canonical: https://ross.abutalabs.com/products/discord-manifold
Language: Elixir
License: MIT
License Family: permissive
Topics: erlang, elixir, message-passing, performance
Last push: 2026-07-07T13:21:48+00:00

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

## Adoption (not part of the score)
Stars 1848, forks 74 (observed 2026-08-28T04:05:43.668511+00:00)

## What it is
Manifold is an Elixir/Erlang library that optimizes batch message passing between Erlang nodes by grouping PIDs by remote node and distributing send work across partitioner and worker processes. It was built by Discord to reduce the per-call cost of send/2 when broadcasting messages to large numbers of processes across a cluster.

## Use cases
- send messages to thousands of PIDs across Erlang nodes efficiently
- reduce network bandwidth when broadcasting to remote processes
- fix GenServer message queue backlogs caused by send/2 overhead
- batch message passing in a distributed Elixir cluster
- optimize real-time message fan-out at scale
- replace raw send/2 loops with a faster alternative

## When to choose
- you run a distributed Erlang/Elixir cluster and send messages to many PIDs on remote nodes
- your processes fall behind on message queues due to send/2 costs
- you need Discord-scale message fan-out performance

## When to avoid
- your app runs on a single node with no cross-node messaging
- you only send messages to a handful of processes
- you need guaranteed ordered delivery beyond what send/2 linearizability provides

## Facets
- artifact type: library
- maturity: stable
- function: message-queue, concurrency, networking
- domain: microservices, backend, performance
- platform: elixir, jvm
- tags: erlang, elixir, message-passing, distributed-erlang, batching, performance-optimization, discord, messaging

## Member repositories
- discord/manifold (main) score 64

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:43.668511+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-30T03:17:47.752254+00:00, confidence not recorded.
  - readme: https://github.com/discord/manifold (fetched 2026-08-28T04:05:43.668511+00:00, sha 5eb067a71ad2)
- Data as of 2026-08-30T08:39:29.467469+00:00.
