Website • Javadoc • Atomix • Jepsen Tests • Google Group
Copycat is a feature complete, fully asynchronous implementation of the Raft consensus algorithm in Java 8 built for Atomix and designed for use in any project. The implementation provides a fully featured client and server to operate on replicated state machines. The implementation includes: * Pre-vote election protocol (§4.2.3) * Session-based linearizable writes (§6.3) * Lease-based fast linearizable reads from leaders (§6.4.1) * Fast sequential reads from followers (§6.4.1) * FIFO consistency for concurrent/asynchronous operations (§11.1.2) * Session-based state machine events (§6.3) * Membership changes (§4.3) * Asynchronous gossip protocol * Incremental log compaction (§5.3) * Snapshots (§5.1)
Additionally, this implementation has undergone extensive Jepsen testing to verify it maintains linearizability in a number of different failure scenarios.
For more information on the Raft implementation itself, see Copycat architecture