Implementing it is the fun part! You might like going through the Raft lab in MIT's distributed systems course: https://pdos.csail.mit.edu/6.824/labs/lab-raft.html
+ Jon Gjengset's writeup on some of the "gotcha"s: https://thesquareplanet.com/blog/students-guide-to-raft/