Coracle.Raft
1.0.2
dotnet add package Coracle.Raft --version 1.0.2
NuGet\Install-Package Coracle.Raft -Version 1.0.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Coracle.Raft" Version="1.0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Coracle.Raft --version 1.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Coracle.Raft, 1.0.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Coracle.Raft as a Cake Addin #addin nuget:?package=Coracle.Raft&version=1.0.2 // Install Coracle.Raft as a Cake Tool #tool nuget:?package=Coracle.Raft&version=1.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Coracle.Raft
Clusterize your functionality and build your own replicated state machine using this completely extensible implementation of the Raft consensus algorithm in .NET.
Features
- Control important functionality
- Extend
Coracle.Raft.Engine.Remoting.IOutboundRequestHandler
for Outbound Remote Operations without any restrictions on protocols and data-transfer formats - Extend
Coracle.Raft.Engine.Discovery.IDiscoveryHandler
for initial discovery of otherCoracle
nodes - Extend
Coracle.Raft.Engine.Command.IStateMachineHandler
for maintaining the State Machine, i.e your cluster's core state functionality - Extend
Coracle.Raft.Engine.States.IPersistentStateHandler
for managing crucial persistent properties, state snapshots, and the replicated log using any data storage technology
- Extend
- Supports configuration changes using the cited "Joint-Consensus" approach
- Supports quick catch-up of newly added nodes using InstallSnapshotRPC
- Fine-grained control over internal processing using
IEngineConfiguration
settings - Extensive and rich logging of all internal workflows
- Control log Level and integrate extensible Log sinks
- For consistency,
IActivityLogger
can be used again for capturing logs from implementations of the aforementioned handlers
- Easy DI registration
Documentation
- To know more about RAFT, check out In Search of an Understandable Consensus Algorithm - Diego Ongaro and John Ousterhout, Stanford University
- To know more about how Coracle.Raft works and implements the algorithm, check out Coracle.Raft
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net6.0
- TaskGuidance.BackgroundProcessing (>= 1.0.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Coracle.Raft:
Package | Downloads |
---|---|
Coracle.Raft.Examples
An example use case of Coracle.Raft in .NET |
GitHub repositories
This package is not used by any popular GitHub repositories.
v1.0.2 - Updated README.md