Our foundation with respect to distributed systems isn't really formally rigid (I'm still trying to understand how Raft and Paxos work) and looking at this will probably help a lot!
That has a nice, interactive visualization along with links to the paper itself, implementations, and talks about raft.
Feel free to ask me any questions about this.
[1]: https://twitter.com/emsal1863/status/847905495679516676