Specification <number> below refers to the section in the paper A comprehensive study of Convergent and Commutative Replicated Data Types describing the CRDT.
Scratched out means DONE.
Write docs for:
The functionality and semantics of the CvRDTThe JSON view of each CvRDTSimple JavaScript demo querying the REST serverHow to start up the cluster serviceREST APIScala CRDT APIHow to run the DemoRestServerArchitecture (pub/sub, leveldb) etc.ConfigurationLevelDB and other storage optionsExplain difference between CvRDT and CmRDT- More background and concepts around CRDT, CAP and CALM
Specification 6 State-based increment-only counterSpecification 7 State-based PN-Counter- Implement Handoff Counter as described in this paper and this code
Specification 11 State-based grow-only Set (G-Set)Specification 12 State-based 2P-Set- Optimized OR Set - as defined in An Optimized Conflict-free Replicated Set
- Specification 8 State-based Last-Writer-Wins Register (LWW Register)
- Specification 10 State-based Multi-Value Register (MV-Register)
- Specification 5 op-based Counter
- Specification 9 Op-based LWW-Register
- Specification 13 U-Set: Op-based 2P-Set with unique elements
- Specification 14 Molli, Weiss, Skaf Set
- Optimized OR Set - as defined in An Optimized Conflict-free Replicated Set
- Specification 16 2P2P-Graph (op-based)
- Specification 17 Add-only Monotonic DAG (op-based)
- Specification 18 Add-Remove Partial Order
- Specification 19 Replicated Growable Array (RGA)
- Specification 21 Op-based Observed-Remove Shopping Cart (OR-Cart)
- Using akka-persistence
- Rewrite the REST API using Spray
- Write a JavaScript CRDT library. So a client can grab the real JSON representation, modify it, do the merges as needed and then push the result back to the server.
- Java API for CRDT classes/ClusterClient
- If a new node joins the cluster then the current state for all CvRDTs is not immediately replicated. It will be eventually - for all the CvRDTs that are updated again. This is not good. How can we solve this?