https://github.com/ourway/graft
An implementation of the raft consensus algorithm, allowing you to create distributed replicated state machines.
https://github.com/ourway/graft
elixir-library raft raft-algorithm raft-consensus raft-consensus-algorithm raft-protocol
Last synced: 3 months ago
JSON representation
An implementation of the raft consensus algorithm, allowing you to create distributed replicated state machines.
- Host: GitHub
- URL: https://github.com/ourway/graft
- Owner: ourway
- Created: 2021-02-21T06:54:54.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2021-02-21T06:58:43.000Z (about 4 years ago)
- Last Synced: 2025-01-14T22:43:08.590Z (4 months ago)
- Topics: elixir-library, raft, raft-algorithm, raft-consensus, raft-consensus-algorithm, raft-protocol
- Language: Elixir
- Homepage: https://farshid.ashouri.org/posts/what-is-raft
- Size: 6.84 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Graft
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](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.
## Installation
To install the package, add it to your dependency list in `mix.exs`.```elixir
def deps do
[{:graft, "~> 0.1.0"}]
end
```## Documentation
Find the full documentation as well as examples here.