Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Switch to pure operation-based CRDTs #301
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.