spectral is an experimental decentralized service-discovery system for high-churn environments.
Each sidecar participates in a sparse expander overlay, advertises local services, and discovers live providers without relying on a central registry. The design combines DEX-inspired graph maintenance with randomized discovery and epoch-based topology resizing.
- Constant-degree expander overlay for scalable connectivity
- Randomized walks for membership sampling
- Parallel multi-path service lookups
- Stable node identities across topology epochs
- Join, graceful-leave, and crash handling
- Inflation and deflation as population changes
General development
- Go 1.27+
- Docker
Network simulation
Install the listed requirements, and set up the cluster with
make bootstrapWhen you are done developing and need to delete the cluster, make sure to shut it down:
make kind-downWhen you make changes to the spectral daemon while testing, update your local kubernetes cluster with
make spctrld-devWhich will build the daemon's docker image, push it to kind, and tell the cluster to restart spctrld deployments with the updated version.