Apache Ratis ist eine Java-Bibliothek, die das Raft-Protokoll [1] implementiert. Eine erweiterte Version des Raft-Papiers ist unter https://raft.github.io/raft.pdf verfügbar. Der Artikel stellt Raft vor und erläutert seine Beweggründe mit folgenden Worten:
Raft ist ein Konsensalgorithmus zur Verwaltung eines replizierten Protokolls. Es erzeugt ein Ergebnis, das dem von (Multi-)Paxos entspricht, und ist genauso effizient wie Paxos, aber seine Struktur unterscheidet sich von der von Paxos; Dies macht Raft verständlicher als Paxos und bietet auch eine bessere Grundlage für den Aufbau praktischer Systeme.
Ziel von Ratis ist es, Raft als Java-Bibliothek verfügbar zu machen, die von jedem System verwendet werden kann, das ein repliziertes Protokoll verwenden muss. Es bietet Pluggability für Zustandsmaschinenimplementierungen zur Verwaltung replizierter Zustände. Es bietet außerdem Pluggability für Raft-Protokolle, RPC-Implementierungen und Metrikimplementierungen, um die Integration in andere Projekte zu vereinfachen. Ein weiteres wichtiges Ziel besteht darin, die Datenaufnahme mit hohem Durchsatz zu unterstützen, damit sie für allgemeinere Anwendungsfälle der Datenreplikation verwendet werden kann.