Remix.run Logo
conradev a day ago

That makes total sense! Beyond the efficiency of no servers, the other aspect of CBS that is appealing to me is its simplicity.

Graft introduces a lot of new concepts, and while they might be necessary to achieve the more ambitious goals, it feels a like a lot. Running an HTTP API with Protobuf is a lot of API surface area to maintain and evolve going forward.

Write concurrency for CBS is "one writer per bucket", which is usable in a "one bucket per user" configuration. You can mediate a client's blob storage access with signed URLs. It's not great, though, and you have to roll your own conflict resolution.

The most interesting choice to me here is to handle conflict resolution (rebasing/forking/resetting) at the storage engine (page) level. For non-overlapping writes, I can see how rebasing is quite effective.

carlsverre a day ago | parent [-]

Fair! CBS is absolutely a killer solution to the same class of problems.