forked from jgroups-extras/jgroups-raft
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
26 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,37 @@ | ||
jgroups-raft | ||
============ | ||
|
||
Implementation of the RAFT [1] consensus algorithm in JGroups. For the | ||
design, look into `doc`. | ||
[![Last Build](https://img.shields.io/github/actions/workflow/status/jgroups-extras/jgroups-raft/maven.yml?style=for-the-badge&logo=github)](https://github.com/jgroups-extras/jgroups-raft/actions/workflows/maven.yml) | ||
[![Maven Central](https://img.shields.io/maven-central/v/org.jgroups/jgroups-raft?style=for-the-badge&logo=apache-maven&color=green)](https://central.sonatype.com/artifact/org.jgroups/jgroups-raft) | ||
[![License](https://img.shields.io/github/license/jgroups-extras/jgroups-raft?style=for-the-badge&logo=apache&color=green)](https://www.apache.org/licenses/LICENSE-2.0) | ||
|
||
To generate the manual execute `ant manual` (requires `asciidoctor`). | ||
jgroups-raft is an implementation of the [Raft](https://raft.github.io/) consensus algorithm in [JGroups](http://jgroups.org/). | ||
Users can use jgroups-raft embedded in their applications to build strongly consistent, highly available, fault-tolerant systems. | ||
|
||
Discussions on design and implementation are at [2]. | ||
|
||
The web page is here: [3]. | ||
## Overview | ||
jgroups-raft is a library offering all the guarantees the Raft algorithm provides, with features including: | ||
|
||
There's an IRC at #jgroups-raft. | ||
* 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. | ||
|
||
[1] http://raftconsensus.github.io/ | ||
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](https://github.com/jgroups-extras/jepsen-jgroups-raft) to identify linearizability violations in the building blocks. | ||
|
||
[2] https://groups.google.com/forum/#!forum/jgroups-raft | ||
|
||
[3] http://belaban.github.io/jgroups-raft | ||
## Getting Started | ||
|
||
To get started developing with jgroups-raft: | ||
|
||
* Take a look at the complete [documentation](https://belaban.github.io/jgroups-raft/manual/index.html); | ||
* Details about the implementation are available in the [design documents](https://github.com/jgroups-extras/jgroups-raft/tree/master/doc/design). | ||
|
||
|
||
## Contributing | ||
|
||
* Get in touch through the [discussion group](https://groups.google.com/forum/#!forum/jgroups-raft) or [GitHub discussions](https://github.com/jgroups-extras/jgroups-raft/discussions); | ||
* Open bug reports on [GitHub issues](https://github.com/jgroups-extras/jgroups-raft/issues); | ||
* Feel like coding? Look at the issues page and get in touch with any questions. |