Current section
Files
Jump to
Current section
Files
README.md
# GraftGraft 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](https://raft.github.io/raft.pdf). 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](https://raft.github.io/) is a great place to start.## InstallationTo install the package, add it to your dependency list in `mix.exs`.```elixirdef deps do [{:graft, "~> 0.1.1"}]end```If you are new to Elixir/mix, check out the [official Elixir webpage](https://elixir-lang.org/) for instructions on how to install Elixir. It is also a great place to start for newcomers to the language. You may also want to check out the [Introduction to mix](https://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.html) and [dependencies](https://elixir-lang.org/getting-started/mix-otp/dependencies-and-umbrella-projects.html) guides for more information on how importing external projects works in Elixir.## DocumentationFind the full documentation as well as examples [here](https://hexdocs.pm/graft/Graft.html).