Skip to content
/ ratis Public

Open source Java implementation for Raft consensus protocol.

License

Notifications You must be signed in to change notification settings

apache/ratis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Apr 23, 2025
3247c7f · Apr 23, 2025
Mar 31, 2025
Apr 10, 2023
Mar 5, 2025
Mar 31, 2025
Feb 26, 2025
Feb 26, 2025
Mar 25, 2025
Feb 26, 2025
Mar 25, 2025
Feb 26, 2025
Mar 25, 2025
Feb 26, 2025
Mar 5, 2025
Mar 5, 2025
Mar 24, 2025
Feb 26, 2025
Feb 26, 2025
Jan 8, 2025
Apr 23, 2025
Apr 23, 2025
Feb 26, 2025
Mar 25, 2025
Feb 26, 2025
Jul 2, 2024
May 10, 2024
Dec 24, 2024
Mar 20, 2023
Jan 29, 2018
Mar 29, 2022
Oct 15, 2023
Nov 22, 2023
Mar 5, 2025
Mar 5, 2025
Mar 17, 2025
Oct 7, 2019

Apache Ratis

Apache Ratis is a Java library that implements the Raft protocol [1], where an extended version of the Raft paper is available at https://raft.github.io/raft.pdf. The paper introduces Raft and states its motivations in following words:

Raft is a consensus algorithm for managing a replicated log. It produces a result equivalent to (multi-)Paxos, and it is as efficient as Paxos, but its structure is different from Paxos; this makes Raft more understandable than Paxos and also provides a better foundation for building practical systems.

Ratis aims to make Raft available as a java library that can be used by any system that needs to use a replicated log. It provides pluggability for state machine implementations to manage replicated states. It also provides pluggability for Raft log, rpc implementations and metric implementations to make it easy for integration with other projects. Another important goal is to support high throughput data ingest so that it can be used for more general data replication use cases.

Reference

  1. Diego Ongaro and John Ousterhout, In Search of an Understandable Consensus Algorithm, 2014 USENIX Annual Technical Conference (USENIX ATC 14) (Philadelphia, PA), USENIX Association, 2014, pp. 305-319.