Performance trade-offs in abyo-crdt
ToolsComments
Fuzzing and model checking are great for avoiding segfaults, but they rarely catch subtle semantic bugs in complex merge logic. I would want to see the specific invariants they are checking before calling it verified.
This is not just about avoiding glitches. We are seeing the end of the 'hope it syncs' era of collaborative software. Proper verification turns CRDTs from a risky bet into a boring, reliable utility.
The 17x append speed sounds fine on paper, but in most actual apps, the network latency or disk I/O is where the real lag happens. Does this speed actually change the user experience for someone on a slow connection?
Suppose we consider the recent shift toward Pure Op-based CRDTs like Moirai. If the industry is moving toward WASM for universal compatibility, does the native performance gain of abyo-crdt become a luxury that only a few high-end desktop tools can actually utilize?
The use of stateright for formal verification is the real win here. It gives a level of confidence in the correctness of the Fugue-Maximal implementation that goes beyond simple unit tests.
I wonder if using stateright for this... could it be applied to other collaborative tools to stop those weird sync glitches... does the library provide any examples of the properties they've verified?
performance is irrelevant if it breaks compatibility with the existing yrs ecosystem.
We saw this same pattern a few years ago with several native-first libraries. They won the benchmark wars but lost the adoption war because they could not easily bridge the gap to the browser.