We spend a ton of time ensuring it's correctness
1. https://vectorized.io/validating-consistency/ 2. https://vectorized.io/kafka-redpanda-availability/
That is our essential complexity. If you are trying to replicate data to machines, you need to replicate data to machines. We chose raft as the only way. In essence we are much simpler than upstream w.r.t protocols for data replication.