What is Apache Ratis™?
Apache Ratis is a highly customizable Java implementation of the Raft consensus protocol.
Raft is an easily understandable consensus algorithm designed to manage replicated state across a distributed system.
Apache Ratis can be seamlessly integrated into any Java application requiring state replication across multiple instances.
Pluggable Transport
Ratis provides a pluggable transport layer. By default gRPC, Netty+Protobuf and Apache Hadoop RPC based transports are provided.
Pluggable State Machine
Ratis supports a log and state machine. State machine typically contains the data that you want to make highly available. Ratis makes it easy to use your own state machine.
Pluggable Raft Log
RAFT log is also pluggable, users can provide their own log implementation. The default implementation stores log in local files.
Pluggable Metrics
Ratis provides a pluggable observation layer. By default (ratis-metrics-default), it uses the shaded Dropwizard 4 provided by ratis-thirdparty. Another implementation can be found in ratis-metrics-dropwizard3. Users can provide their own metrics implementations.
Log Service
Ratis provides a log service recipe provides StateMachines to implement a distributed log service with a focused client API. For more information, please read the LogService documentation.