Switch to pure operation-based CRDTs #301

krasserm opened this Issue Sep 1, 2016 · 0 comments


None yet

1 participant

krasserm commented Sep 1, 2016 edited

The approach is described in Making Operation-based CRDTs Operation-based. At the moment, the implementation follows the approach from A comprehensive study of Convergent and Commutative Replicated Data Types which requires access to local CRDT state during the prepare phase.

Eventuate already provides a reliable causal broadcast via replicated event logs and additionally exposes causality information (vector timestamps) during event delivery. In other words, it provides the Tagged Reliable Causal Broadcast (TRCB) API as described in the paper. What is still missing is the causal stability part of the TRCB API but this should be a minor effort to implement.

Freeing CRDTs from local state access during the prepare phase allows for much more efficient batching of operations messages (i.e. events) being written to the event log, which will significantly increase write throughput.

@krasserm krasserm added the CRDT label Sep 1, 2016
@krasserm krasserm self-assigned this Sep 1, 2016
@krasserm krasserm changed the title from Make all operation-based CRDTs pure to Switch to pure operation-based CRDTs Sep 1, 2016
@krasserm krasserm removed their assignment Oct 5, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment