diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 6869dd11..15f4d293 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -28,7 +28,3 @@ jobs: cache: maven - name: Build with Maven run: mvn -B package --file pom.xml -Dgroups=functional - - # Optional: Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive - - name: Update dependency graph - uses: advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6 diff --git a/README.md b/README.md index abfc573c..cfbe9dfa 100644 --- a/README.md +++ b/README.md @@ -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.