The Only Undoable CRDTs are Counters
In comparing well-known CRDTs representing sets that can grow and shrink, we find caveats. In one, the removal of an element cannot be reliably undone. In another, undesirable states are attainable, such as when an element is present -1 times (and so must be added for the set to become empty). The first lacks a general-purpose undo, while the second acts less like a set and more like a tuple of counters, one per possible element. Using some group theory, we show that this trade-off is unavoidable: every undoable CRDT is a tuple of counters.
READ FULL TEXT