RaftRepo Implementing Raft as part of 6.824 course 3 parts Leader election appending log entries implementing persistence snapshotting - log compaction