Am I correct that this orders and makes SQL statements durable via Raft and then executes them serially against a local SQLite database?
How would you use this to perform a transaction, or at minimum a compare-and-swap operation against a row? There doesn't seem to be any binding between a client and a connection for you to implement transactions here.
Same idea as https://github.com/rqlite/rqlite I presume but in rust vs go?
The announcement here talks more about the context:
https://glaubercosta-11125.medium.com/728187331f53
It also mentions rqlite and dqlite.
How's the security and security defaults and are these documented somewhere? Are the "cargo run" examples safe to run as is in a networked environment without random people on the internet pwning your cluster? Is there confidentiality & authentication in the inter node communications?
Isn't the whole point of SQLite to not be distributed?
I've looked at the https://github.com/chiselstrike/chiselstore/blob/main/proto/... - and calling the service "RPC" is not great if this is going to be bundled with other gRPC services - why not call it "chiselStore" or something more concrete?
on a 2nd note, each method should have it's own Request Response, and ideally they should be suffixed same way. Returning same proto for multiple methods might break future compatibility - e.g. what if AppendEntries needs to return somehing else than Void? - ideally you make it from the start to return an empty AppendEntriesResponse, and then you can extend that proto.
https://developers.google.com/protocol-buffers/docs/proto3#u...
(edit again, also the package should not be called just "proto")