|
|
|
|
|
by vivekseth
2170 days ago
|
|
You don't actually need to keep a log of all events. You only need to keep around just enough information to merge any 2 replicas. Here's a very simple example: If there are only 5 users concurrently editing a document and each user has seen operations o1...oN, then you can safely compress the data for o1...oN. Depending on the CRDT type you may not need to store any log at all. For an add-only set, for example, you only need to store the elements. I think what's harder to solve is the metadata overhead problem. Most CRDT based text editors have a huge per-character overhead. As Martin mentioned, Automerge used to have a overhead of ~200bytes per character, but using a new binary encoding format they were able to reduce the overhead down to 1.5-7 bytes per character. (https://speakerdeck.com/ept/crdts-the-hard-parts?slide=67). |
|