47 questions
- Bountied 0
- Unanswered
- Frequent
- Score
- Trending
- Week
- Month
- Unanswered (my tags)
1
vote
1
answer
47
views
How can you make a CRDT Map from a CRDT set?
Let's say I've got a CRDT which I can add and remove elements from at will. It's a state-based CRDT, so I can merge two of these sets together.
Assuming the set implementation is correct, I've seen ...
0
votes
2
answers
125
views
Why only commutativity is sufficient for op-based CRDTs and not also associativity?
In the context of op-based CRDTs, it has been shown that a sufficient condition to ensure convergence (Strong Eventual Consistency) is that all operations commute. (assuming an underlying reliable ...
1
vote
1
answer
192
views
Automerge synchronisation
Problem
I have implemented a system where the frontend and backend make changes to a CRDT document.
The frontend and backend communicate via websockets and at some point the two pairs will synchronise....
2
votes
1
answer
336
views
CRDTS: Delta-state Add-Wins-Observed-Removed Map
I found a nice introductory article on delta-state CRDTs here.
Their approach uses a map with a root version vector and tags each key with a "dot" list. The version vector is standard - a ...
0
votes
1
answer
173
views
Should the operations of an operation-based CRDT be commutative?
I read Mark Shapiro's article on CRDTs but it is not clear for me whether all the operations of operation-based CRDTs should be commutative or not.
For any two operations f, g in C(xi): (1) if they ...
0
votes
2
answers
605
views
how to switch the doc when using yjs to implement an online collaboration editor without websocket reconnection
I am trying to using yjs "yjs": "^13.6.7" https://github.com/yjs/yjs to implement an online collaboration editor. This is how I initial the yjs in react function component:
import {...
0
votes
0
answers
434
views
React rerendering too much when using YJS
I'm making a collaborative app using:
"next": "^13.4.12",
"yjs": "^13.6.7",
"y-webrtc": "^10.2.5",
// Slate and its YJS implementation ...
0
votes
1
answer
163
views
How to prevent selected fields from being updated in Y.js?
Imagine object like this
const project = {
editors:{'[email protected]':'owner', '[email protected]':'manager' },
title:'myStackProject',
article:'I love to ask questions'
}
In my case managers can't ...
0
votes
1
answer
132
views
How to change this merge() method for a Multi-Value Register CRDT implementation?
I have the following problem: In this simple implementation of a MVR-CRDT the merge() method should add all values that are not null to the merged replica. For that to happen i used a for loop which ...
0
votes
1
answer
215
views
Which part of the CAP Theorem does CRDT Sacrifice?
CRDT or Conflict-Free Replicated Data Type follows a strong eventual consistency guarantee, essentially meaning consistency is guaranteed to be achieved at some point in time in the future.
My ...
0
votes
1
answer
90
views
replicating trees between ACID RDB using CRDT
I'm interested in replicating "hierachies" of data say similar to addresses.
Area
District
Sector
Unit
but you may have different pieces of data associated to each layer, so you may know the ...
1
vote
1
answer
405
views
How to handle concurrent adds on the same key in Last Write Wins map?
I am implementing an LWW map and in my design, all added key-value pairs have timestamps as is expected from LWW. That works for me until the same key is added in two replicas with different values at ...
2
votes
1
answer
865
views
How to handle different paths when working with CRDTs (Yjs), when 2 changes happen concurrently?
I'm currently trying to build a collaborative Drag&Drop HTML-Editor with Yjs. I'm using Node.js with JavaScript and jQuery. A node server (y-websocket) handles the distribution of events to other ...
1
vote
0
answers
273
views
How real time collaborative editors store document in database ? What should be the schema to support "Operational Transform" or CRDT data structure?
I am trying to understand the schema and right database for the real-time collaborative editor. I could not find a suitable article or research paper about database requirements so I am posting my ...
3
votes
1
answer
894
views
Is it possible to implement transaction with CRDTs?
By the definition CRDTs (Conflict-free replicated data types) are conflict-free.
So it means that any update made on one node will finally be applied (merged) on all other nodes.
So it leads me to the ...