Skip to content

Latest commit

 

History

History
82 lines (52 loc) · 2.26 KB

TODO.md

File metadata and controls

82 lines (52 loc) · 2.26 KB

TODO

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.

Documentation

Write docs for:

  • The functionality and semantics of the CvRDT
  • The JSON view of each CvRDT
  • Simple JavaScript demo querying the REST server
  • How to start up the cluster service
  • REST API
  • Scala CRDT API
  • How to run the DemoRestServer
  • Architecture (pub/sub, leveldb) etc.
  • Configuration
  • Scala ClusterClient API
  • LevelDB and other storage options
  • More background and concepts around CRDT, CAP and CALM
  • Explain difference between CvRDT and CmRDT

CvRDTs (state-based)

Counters

  • Specification 6 State-based increment-only counter
  • Specification 7 State-based PN-Counter

Sets

  • Specification 11 State-based grow-only Set (G-Set)
  • Specification 12 State-based 2P-Set

Registers

  • Specification 8 State-based Last-Writer-Wins Register (LWW Register)
  • Specification 10 State-based Multi-Value Register (MV-Register)

CmRDTs (ops-based)

Counters

  • Specification 5 op-based Counter

Sets

  • Specification 9 Op-based LWW-Register
  • Specification 13 U-Set: Op-based 2P-Set with unique elements
  • Specification 14 Molli, Weiss, Skaf Set
  • Specification 15 Op-based Observed-Remove Set (OR-Set)

Graphs

  • Specification 16 2P2P-Graph (op-based)
  • Specification 17 Add-only Monotonic DAG (op-based)
  • Specification 18 Add-Remove Partial Order

Array

  • Specification 19 Replicated Growable Array (RGA)

Shopping Cart

  • Specification 21 Op-based Observed-Remove Shopping Cart (OR-Cart)

Misc Stuff

Garbage Collection for CvRDTs

  • TODO

Reliable Broadcast for CmRDTs

Client API

  • 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