What is Styx?
Styx is a distributed membership system that tells you the truth about node liveness - even when that truth is “I don’t know.” Unlike traditional health checks that return binary alive/dead states, Styx returns probability distributions. When a node is unreachable, it doesn’t guess - it says unknown instead of potentially lying.The Problem with Traditional Membership
Most membership systems lie. When the network is slow, they mark nodes as dead even when they’re perfectly healthy. This causes:- Cascading failures from false positives
- Unnecessary failovers and data loss
- Split-brain scenarios during partitions
- Binary decisions based on insufficient evidence
Key Features
Honest Uncertainty
Returns
unknown when evidence is insufficient instead of guessing wrong. No more false positives from slow networks.Probability Distributions
Get confidence levels for alive, dead, and unknown states. Make informed decisions based on actual certainty.
Partition Detection
Refuses to answer during network partitions instead of picking a side. Prevents split-brain scenarios.
Death Finality
Death declarations are irreversible and require multiple witnesses. No flapping between states.
Core Principles
Styx is built on five fundamental rules:- If unsure, say unknown - Don’t guess when you lack evidence
- Death is permanent - Once declared dead, a node can’t come back (prevents flapping)
- Multiple witnesses required - No single point of failure for death decisions
- Refuse during partitions - When witnesses disagree, refuse to answer
- Timeout alone is not enough - Need corroborating evidence beyond a single timeout
How It Works
Styx aggregates reports from multiple witnesses - nodes that actively monitor target nodes. Each witness submits belief distributions:Why Styx is Different
| Traditional Systems | Styx |
|---|---|
| Returns boolean (alive/dead) | Returns probability distribution |
| Guesses during uncertainty | Says “unknown” explicitly |
| Timeout = dead | Timeout = evidence, not conclusion |
| Nodes can flap between states | Death is permanent (finality) |
| Picks a side during partition | Refuses to answer |
| Single source of truth | Aggregates multiple witnesses |
Real-World Example
A node becomes temporarily unreachable due to network congestion: Traditional system:Quick Example
Query a node’s status:Architecture
Get Started
Ready to build a membership system that doesn’t lie?Quick Start
Get Styx running in 5 minutes
Installation
Install via Docker, Go, or build from source