Cluster Communication
Alopex Chirps
The layer that connects nodes and carries them to agreement
Chirps is a Rust library you embed in an application. Node discovery and joining, gossip-based membership, messaging over QUIC and Raft consensus work without standing up a separate server.
A Rust communication layer that brings node discovery, membership, messaging and Raft consensus together.
Key points
- One library from node discovery to messaging
- Nodes always authenticate each other with mutual TLS
- Raft building blocks you embed as they are
Challenge
Cluster communication assembled from separate parts
- Discovery, liveness, messaging and consensus each come from a different mechanism
- Authentication between nodes is added later
- A dedicated server just for consensus to operate
One library to connect, know, send and agree
Embed it in the application and cluster communication and consensus are in place.
- Join from a seed list and track members through gossip
- Targeted sends, broadcast, and subscriptions
- Raft consensus and multiple Raft groups
Capabilities
Two layers
Consensus building blocks sit on top of the mesh.
Mesh
Connect nodes and know their state
- Join a cluster from a seed list, without DNS
- Track alive, suspect and dead through SWIM-style gossip
- Receive node join, leave and status changes as events
- Targeted sends and broadcast over QUIC with mutual TLS
Consensus
Make decisions in the same order across the cluster
- Raft consensus. The application owns the state machine
- Multiple Raft groups, each with its own storage
- A timestamp oracle that hands out increasing timestamps
Features
Key features
What Chirps provides for cluster communication.
Discovery and membership
Join from a seed list and track each node's liveness through SWIM-style gossip. Node IDs are persisted and survive restarts.
Messaging
Targeted sends, broadcast to all nodes, and subscriptions. Raft traffic travels on the control delivery profile with priority.
Mutual TLS
Communication runs over QUIC, and nodes always authenticate each other with mutual TLS. Only certificates configured as trusted are accepted.
Raft and multiple Raft groups
Raft consensus, with multiple Raft groups running on storage separated per group. Snapshot transfer is supported.
File transfer
Send, broadcast and sync files. The receiver verifies the hash before placing a file.
Prometheus metrics
Mesh, gossip and Raft state through an authenticated endpoint.
Tech Stack
Tech stack
Written in Rust and sharing parts with the Alopex family.
Communication
QUIC + TLS
Consensus
Raft
Resources
Resources
Source code, package, and related pages.
“Start from the problem you have today. You will see quickly what this product removes.”
Takamine Akari
Product guide
“Open the repository and read the design rationale and the tests yourself.”
Asmati Tatsumi
Technical explanation
Public Resources
The latest documents, code, and community links in one place.
Get Involved
Try it and tell us where you got stuck
If joining nodes or setting up certificates gave you trouble, open an issue.