Comment by kiitos
I think I'm probably operating with definitions of client and commit that are different than yours.
Specifically, I don't really see how a client can "commit locally" and "commit globally" as separate things. I understand a client to be something that interacts with your metastore API, which provides a single "commit" operation, that AFAICT will return success/failure based on local commit state, not global state.
Is that not correct?
Later on in the design.md you say
> The Client will be a Rust library ...
which might be the missing link in this discussion. Is the system model here assuming that clients are always gonna be Rust code in the same compilation unit as the Graft crate/library/etc.?
Graft's definition sounds more like a Git "commit" than one found in a SQL standard. Perhaps that's the source of this confusion?