SharedSequence
CRDTsequence_kernel An ordered list many people can edit at once: insert, move, and reorder without losing anyone’s changes.
Open the live SharedSequence demo →A shared sequence holds an ordered list of JSON values. You address an edit by index (insert at 2, move 4 to 1), but the index only records intent. Underneath, every item has a stable identity, and the CRDT delta that ships is expressed against identities, not positions. Two replicas can therefore edit the same region concurrently and still converge: a move follows the item it named rather than whatever later occupies its slot, and two inserts at one position both survive in a deterministic order.
The lattice merge is duplicate- and order-tolerant: a delta delivered twice, or after its neighbors, is absorbed without disturbing the list. Local edits apply optimistically and ride the sequenced stream as deltas; if the server rejects one, it rolls back and the remaining pending edits replay over the sequenced base.
Replace is composed rather than native: it deletes the visible item and inserts the replacement at the same position as one collaborative operation (one pending entry, one wire op, one event). The identity-CRDT design and wire format are watershed’s own.
Best for
- Shared itineraries, checklists, and ordered plans edited by many hands
- Reorderable collections (playlists, priority queues, kanban lanes) where a move must not clobber a concurrent edit
- The ordered substrate beneath SharedText, the collaborative plain-text DDS built on the same identity lattice
- Merge rule
- each item keeps a stable identity, so concurrent inserts, moves, and deletes merge instead of fighting over index numbers
- Optimistic behavior
- your edit shows immediately in magenta; items slide when the sequenced order lands
- Summary shape
- the sequenced list reloads intact; pending edits replay on top
- Model
- Conflict-free replicated data type: converges by merge