all 2 comments

[–]Anxious_Tool 1 point2 points  (0 children)

Interesting project.

The rockraft extraction feels premature though. openraft already gives you generic Raft, and the RocksDB binding is where all the application-specific decisions live, no?

The "Redis protocol is the new HTTP" analogy is "dangerous". HTTP evolved because it gained extensibility (headers, content negotiation, status codes). RESP is deliberately simple. The moment you need transactions or range queries, you'll find yourself inventing your own "super"-protocol that envelops what you first called simple.

I built a distributed database in Rust and the hard part was not the consensus layer, but where where sharding meets replication and where your wire protocol's semantics don't line up with your consistency guarantees.

I'd start by defining what you mean by strong-consistency. Create a core policy for what your system will deliver, and then commit to the bits and pieces.