For quite sometime, I’ve wanted to give implementing the Raft consensus protocol a try. I first looked at MIT’s 6.5840 Distributed Systems labs as a way to do this but it is in Go and my Go skills have atrophied as well as I have been deeply investing time in Rust. The other option was PingCAPs approach (https://github.com/pingcap/talent-plan/blob/master/courses/d...) but I also wanted the ability to define my own types and RPC approach, so I decided to do it from scratch.I feel more comfortable with the “lab” approach though so I did use Claude to act as a “instructor” and code reviewer. All of the code is my own and the sans-I/O design was my own (Claude did not start with this concept).I’ve been working on this for about 6 months now and I think it’s in a decent state! I want to add linearizable reads eventually but at the moment, a simple key value store with potentially stale reads is available in the repo. You can read some more information on my blog (https://blog.burnthe.dev/roundup-05-11/).I would appreciate any feedback!