Apache Ratis é uma biblioteca Java que implementa o protocolo Raft [1], onde uma versão estendida do artigo Raft está disponível em https://raft.github.io/raft.pdf. O artigo apresenta Raft e declara suas motivações nas seguintes palavras:
Raft é um algoritmo de consenso para gerenciar um log replicado. Produz um resultado equivalente ao (multi-)Paxos e é tão eficiente quanto o Paxos, mas sua estrutura é diferente do Paxos; isso torna o Raft mais compreensível que o Paxos e também fornece uma base melhor para a construção de sistemas práticos.
Ratis tem como objetivo disponibilizar o Raft como uma biblioteca java que pode ser utilizada por qualquer sistema que necessite utilizar um log replicado. Ele fornece capacidade de conexão para implementações de máquinas de estado para gerenciar estados replicados. Ele também fornece capacidade de conexão para log Raft, implementações de rpc e implementações de métricas para facilitar a integração com outros projetos. Outro objetivo importante é oferecer suporte à ingestão de dados de alto rendimento para que possam ser usados em casos de uso de replicação de dados mais gerais.