Persistent assign operation used for MVRegister and LWWRegister.
Marker trait for protobuf-serializable CRDTs and operations.
A generic, replicated CRDT service that manages a map of CRDTs identified by name.
Typeclass to be implemented by CRDTs if they shall be managed by CRDTService
Typeclass to be implemented by CRDTs if they shall be managed by CRDTService
CRDT type
CRDT value type
Operation-based Counter CRDT.
Operation-based Counter CRDT.
Counter value type.
Current counter value.
Replicated Counter CRDT service.
Replicated Counter CRDT service.
Counter value type.
Operation-based LWW-Register CRDT with an MVRegister-based implementation.
Operation-based LWW-Register CRDT with an MVRegister-based implementation. Instead of returning multiple values in case of concurrent assignments, the last written value is returned. The last written value is determined by comparing the following Versioned fields in given order:
vectorTimestamp
: if causally related, return the value with the higher timestamp, otherwise comparesystemTimestamp
: if not equal, return the value with the higher timestamp, otherwise compareemitterId
Note that this relies on synchronized system clocks. LWWRegister should only be used when the choice of value is not important for concurrent updates occurring within the clock skew.
Initially empty MVRegister.
A comprehensive study of Convergent and Commutative Replicated Data Types, specification 9
Replicated LWWRegister CRDT service.
Replicated LWWRegister CRDT service.
LWWRegister value type.
Operation-based MV-Register CRDT.
Operation-based MV-Register CRDT. Has several Versioned values assigned in case of concurrent assignments, otherwise, a single Versioned value. Concurrent assignments can be reduced to a single assignment by assigning a Versioned value with a vector timestamp that is greater than those of the currently assigned Versioned values.
Assigned value type.
Assigned values. Initially empty.
Replicated MVRegister CRDT service.
Replicated MVRegister CRDT service.
MVRegister value type.
Operation-based OR-Cart CRDT with an ORSet-based implementation.
Operation-based OR-Cart CRDT with an ORSet-based implementation. Versioned entry values are of type ORCartEntry and are uniquely identified with vector timestamps.
Key type.
Backing ORSet.
A comprehensive study of Convergent and Commutative Replicated Data Types, specification 21.
ORCart entry.
ORCart entry.
Key type.
Entry key. Used to identify a product in the shopping cart.
Entry quantity.
Replicated ORCart CRDT service.
Replicated ORCart CRDT service.
key
of given quantity
a client should call add
.quantity
of an existing key
a client should call add
.quantity
of an existing key
a client should call remove
, followed by add
(after remove
successfully completed).key
a client should call remove
.
ORCart key type.
Operation-based OR-Set CRDT.
Operation-based OR-Set CRDT. Versioned entries are uniquely identified with vector timestamps.
Entry value type.
Versioned entries.
A comprehensive study of Convergent and Commutative Replicated Data Types, specification 15
Replicated ORSet CRDT service.
Persistent update operation used for Counter.
A generic, replicated CRDT service that manages a map of CRDTs identified by name. Replication is based on the replicated event
log
that preserves causal ordering of events.CRDT type
CRDT value type