Operation-based conflict-free replicated data type (CRDT) implementations in Scala, using the Kompics framework.
This repository contains Kompics components for broadcasting abstractions.
You'll also find a collection of CRDT implementations for graphs and sets, and an incomplete JSON CRDT implementation.
Trivial set CRDT which can only be added to. Operations are broadcast to participating nodes, which then update their local versions to be eventually consistent with the "true" set.
Set that supports element addition and removal. Once removed, however, that element can never be added again.
Set implementation that supports element addition and removal by relying on a causal order broadcast for operation propagation.
Graph CRDT exposing operations for adding and removing vertices and edges, as well as querying for existing vertices and edges. The implementation keeps track of both additions and removals in order to guarantee eventual consistency across users.