These are chat archives for atomix/atomix
@jhall11 that's awesome! I never really attempted learning Clojure either, but I think it will be time well spent!
I'm excited to see a lot more testing being done and I'm hoping to be able to contribute some extra time there myself soon enough. The core of the Raft algorithm is pretty stable, but as I said before, configuration changes and log compaction are the more delicate portions of the algorithm that risk safety and liveness. There's a lot of testing to be done to prove those implementations are correct. Jepsen is one way to do that, and it's great considering that it mimics real world scenarios. I've also explored building a fuzzy testing framework, which Copycat's architecture could certainly facilitate. And as for actual state machine implementations, a testing framework for state machines can be built without much difficulty (just more time) to ensure they're deterministic and manage logs correctly. Those three types of testing really just test the same thing - correctness - at different levels, but could expose different types of issues.