Apache Ratis est une bibliothèque Java qui implémente le protocole Raft [1], où une version étendue de l'article Raft est disponible sur https://raft.github.io/raft.pdf. Le document présente Raft et énonce ses motivations dans les mots suivants :
Raft est un algorithme de consensus pour gérer un journal répliqué. Il produit un résultat équivalent à (multi-)Paxos, et il est aussi efficace que Paxos, mais sa structure est différente de Paxos ; cela rend Raft plus compréhensible que Paxos et fournit également une meilleure base pour construire des systèmes pratiques.
Ratis vise à rendre Raft disponible en tant que bibliothèque Java pouvant être utilisée par tout système nécessitant un journal répliqué. Il permet aux implémentations de machines d'état de gérer les états répliqués. Il offre également la possibilité de brancher le journal Raft, les implémentations rpc et les implémentations de métriques afin de faciliter l'intégration avec d'autres projets. Un autre objectif important est de prendre en charge l’ingestion de données à haut débit afin qu’elles puissent être utilisées pour des cas d’utilisation de réplication de données plus généraux.