Closed mweidner037 closed 3 years ago
Fine as-is, but perhaps the name should be changed (now CRegister). "Register" suggests a low-level processor register, and is probably just historical at this point. Perhaps CValue or CVariable?
Implementations: move the MVR implementation within AggregateRegister.
Interface
https://github.com/composablesys/compoventuals/blob/master/client/src/crdt/register/interfaces.ts
Planned implementations (already complete)
AggregateRegister<T>
: a wrapper around a multi-value register that applies a given "aggregation" function to the set of conflicting (causally maximal) values, in order to return the actual value. The aggregation is allowed to look at the values as well as metadata for each value, namely, its sender, the sender's vector clock entry, and the real-world time it was set.LwwRegister<T>
: a standard LWW register. It is an AggregateRegister where the aggregation function chooses the value with the greatest real-world time.FwwRegister<T>
: same, but the first writer wins instead of the last.Questions