Sucredb is a multi-master key-value distributed database, it provides a Riak/Dynamo style tunable consistent and causality tracking. From a client/protocol point of view it mimics a Redis Cluster, so existing clients just work.
Any node that owns a partition (replication factor) can serve both reads and writes. The database tracks causality using vector-clocks and will NOT drop any conflicting writes unlike LWW (last write wins) and other strategies. Conflicts can and do happen due to races between clients and network partitions.
It’s a project I’ve been working for a while now. As/(if) it moves forward I plan to implement some Redis functionality that works well with CRDTs like Counters, Sets, HyperLogLogs, … It could also expand to support Multi DC as well.