The documentation on the log and log compaction takes up almost half of this big ass page: http://atomix.io/copycat/user-manual/internals/#the-copycat-log
But that’s the portion of the documentation that’s most critical for review by fellow Raft peeps since it’s especially unique compared to anything suggested anywhere in the Raft literature. Even Diego’s dissertation only suggests snapshots, log cleaning, and LSM trees for logging/compaction in Raft, but Copycat implements a custom algorithm that uses the good parts from all three. Logs are incrementally compacted, but snapshots are supported on top of that for simpler state machines. There are lots of crazy complexities in managing that process though, particularly when you consider things like adding nodes to the cluster.