Extending Automerge: Undo, Redo, and Move
This entry is a combination – you could say a merge – of two independent submissions:
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 (concurrently) edit a document, the operation history may become non-linear, and undo and redo are more complex both in terms of their semantics and implementation. We introduce a distinction between undo/redo and a revert operation that takes inspiration from the behavior of current mainstream collaboration software.
CRDTs are a tool to allow for concurrent editing of a shared document without requiring central coordination. A simple CRDT is the multi-valued register, for which we present a novel undo and redo algorithm that implements our identified undo/redo semantics.
Extending JSON CRDT with Move Operations: An Implementation in Automerge
Conflict-Free Replicated Data Types (CRDTs) for JSON allow users to concurrently update a JSON document without introducing any conflicts and automatically merge the updates into a consistent state. However, moving elements in a map or reordering elements in a list for a JSON CRDT is considered hard as it is easy to introduce unexpected results such as duplicates or cycles. In this paper, we implement move operations in Automerge, a CRDT library, and evaluate its performance.
Tue 24 OctDisplayed time zone: Lisbon change
14:00 - 15:30 | |||
14:00 30mTalk | Can local-first really scale at the edge? PLF Carlos Baquero HASLab/INESC TEC & University of Minho | ||
14:30 30mTalk | Local-first at Actyx PLF | ||
15:00 30mTalk | Extending Automerge: Undo, Redo, and Move PLF |