SlimCluster
SlimCluster has the Raft distributed consensus algorithm implemented in .NET. Additionaly, it implements the SWIM cluster membership list (where nodes join and leaves/die).
- Membership list is required to maintain what micro-service instances (nodes) constitute a cluster.
- Raft consensus helps propagate state across the micro-service instances and ensures there is an designated leader instance performing the coordination of work.
The library goal is to provide a common groundwork for coordination and consensus of your distributed micro-service instances. With that the developer can focus on the business problem at hand. The library promisses to have a friendly API and pluggable architecture.
The strategic aim for SlimCluster is to implement other algorithms to make distributed .NET micro-services easier and not require one to pull in a load of other 3rd party libraries or products.
This is work in progress!
Branch | Build Status |
---|---|
master | |
develop | |
other |
Packages
Samples
Check out the Samples folder.
License
Build
cd src
dotnet build
dotnet pack --output ../dist
NuGet packaged end up in dist
folder
Testing
To run tests you need to update the respective appsettings.json
to match your own cloud infrstructure or local infrastructure.
Run all tests:
dotnet test
Run all tests except integration tests which require local/cloud infrastructure:
dotnet test --filter Category!=Integration