Use variable-length string positions for the shopping list #30
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Follow-up to #22 and #25.
Background
The shopping list currently uses integer positions and renumbers every item after a drag. In a captured four-item example, moving Coffee to the front on one replica and Milk to the end on another made both replicas rewrite all four positions. This causes unnecessary overlapping writes. The default localeCompare ID tie-breaker also differs between English and Danish.
NextGraph's pinned source uses observed-remove RDF transactions. Concurrent scalar replacements can retain different literals; the current exactly-one-position shape could then exclude the item. This is source-backed analysis, not a completed native replication experiment.
The Matrix discussion favors an unordered RDF set of item records with hidden ordering metadata, avoiding a serialized whole-list JSON array, fixed slot columns for a variable-length list, and RDF predecessor/linked-list relationships.
References:
Implementation instructions
The position generator alone is not a complete move CRDT. Membership/delete behavior remains NextGraph's existing semantics, and concurrent title edits are outside this ordering change.