Skip to content

endecipher/Coracle.Web.Examples

Repository files navigation

Coracle.Web.Examples

An example use-case of Coracle.Raft - the completely extensible implementation of the Raft consensus algorithm in .NET

GitHub Dependency

Features

Coracle.Raft.Examples

  • NuGet version (Coracle.Raft.Examples)
  • Coracle.Raft.Engine.Command.ICommand and Coracle.Raft.Engine.Command.IStateMachineHandler are implemented for keeping track of "notes" or any string key-value pairs
  • Namespace Coracle.Raft.Examples.Registrar exposes interfaces for service discovery and storage of enrolled nodes
  • Coracle.Raft.Engine.Command.IPersistentStateHandler is implemented for all data operations. For understanding purposes, an in-memory extension was adopted. All expected operations are covered - inclusive of snapshot management, compaction, handling the replicated log chain etc

Additionally, the projects Coracle.Web.Examples and Coracle.Web.Examples.Discovery implement the following

  • Coracle.Raft.Engine.Remoting.IOutboundRequestHandler is extended to use HTTP Web APIs for cross-node communication.
  • Coracle.Raft.Engine.Discovery.IDiscoveryHandler is extended to use a discovery server for initial cluster identification.

Documentation