jgroups-raft is an implementation of the Raft consensus algorithm in JGroups. Users can use jgroups-raft embedded in their applications to build strongly consistent, highly available, fault-tolerant systems.
jgroups-raft is a library offering all the guarantees the Raft algorithm provides, with features including:
- Configurable and alternatives for leader election;
- Dynamic membership changes in single-step;
- Configurable log implementations for storage;
- Member deduplication and request redirection;
- Ready-to-use building blocks.
By building on top of JGroups, jgroups-raft takes advantage of additional features with a mature and battle-tested network stack. jgroups-raft is verified with Jepsen to identify linearizability violations in the building blocks.
To get started developing with jgroups-raft:
- Take a look at the complete documentation;
- Details about the implementation are available in the design documents.
- Get in touch through the discussion group or GitHub discussions;
- Open bug reports on GitHub issues;
- Feel like coding? Look at the issues page and get in touch with any questions.