Skip to content

endecipher/Coracle.Raft

Repository files navigation

packageIcon

Coracle.Raft

Clusterize your functionality and build your own replicated state machine using this completely extensible implementation of the Raft consensus algorithm in .NET.

NuGet version (Coracle.Raft)GitHub

Coracle.Raft - Project Build and Integration TestingTestsWindows Build and Tests passingMacOS Build and Tests passingUbuntu Build and Tests passingDependency

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 other Coracle 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
  • 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

About

Clusterize your functionality and build your own replicated state machine using this completely extensible implementation of the Raft consensus algorithm in .NET

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages