Graft offers an Elixir implementation of the raft consensus algorithm, allowing the creation of a distributed cluster of servers, where each server manages a replicated state machine. The Graft.Machine
behaviour allows users to define their own replicated state machines, that may handle user defined client requests.
In this project's documentation you will find terminology that has been defined in the raft paper. The docs do not go into specifics of the raft algorithm, so if you wish to learn more about how raft achieves consensus, the official raft webpage is a great place to start.
To install the package, add it to your dependency list in mix.exs
.
def deps do
[{:graft, "~> 0.1.0"}]
end
Find the full documentation as well as examples here.