Apache Ratis es una biblioteca Java que implementa el protocolo Raft [1], donde hay una versión ampliada del documento Raft disponible en https://raft.github.io/raft.pdf. El artículo presenta a Raft y expone sus motivaciones en las siguientes palabras:
Raft es un algoritmo de consenso para gestionar un registro replicado. Produce un resultado equivalente a (multi-)Paxos y es tan eficiente como Paxos, pero su estructura es diferente de Paxos; esto hace que Raft sea más comprensible que Paxos y también proporciona una mejor base para construir sistemas prácticos.
Ratis tiene como objetivo que Raft esté disponible como una biblioteca Java que pueda ser utilizada por cualquier sistema que necesite utilizar un registro replicado. Proporciona capacidad de conexión para implementaciones de máquinas de estado para gestionar estados replicados. También proporciona capacidad de conexión para implementaciones de registro Raft, rpc e implementaciones métricas para facilitar la integración con otros proyectos. Otro objetivo importante es admitir la ingesta de datos de alto rendimiento para que puedan usarse en casos de uso de replicación de datos más generales.