Undo and Redo Support for Replicated Registers
<|reference_start|>Undo and Redo Support for Replicated Registers: Undo and redo functionality is ubiquitous in collaboration software. In single user settings, undo and redo are well understood. However, when multiple users edit a document, concurrency may arise, leading to a non-linear operation history. This renders undo and redo more complex both in terms of their semantics and implementation. We survey the undo and redo semantics of current mainstream collaboration software and derive principles for undo and redo behavior in a collaborative setting. We then apply these principles to a simple CRDT, the Multi-Valued Replicated Register, and present a novel undo and redo algorithm that implements the undo and redo semantics that we believe are most consistent with users' expectations.<|reference_end|>
@article{stewen2024undo,
    title={Undo and Redo Support for Replicated Registers},
    author={Leo Stewen and Martin Kleppmann},
    journal={PaPoC '24: Proceedings of the 11th Workshop on Principles and
  Practice of Consistency for Distributed Data, April 2024, Pages 1-7},
    year={2024},
    doi={10.1145/3642976.3653029},
    archivePrefix={arXiv},
    eprint={2404.11308},
    primaryClass={cs.DC}
}