What is go-ds-crdt?
mastergo-ds-crdt is a distributed key-value store implementation based on Merkle-CRDTs. It implements the Datastore and Batching interfaces from the go-datastore project.
Key characteristics include:
- Automatic Replication: Every key-value pair written to a node is automatically replicated to all other nodes in the network.
- Decentralized Membership: Nodes can join or leave the network at will without prior notification. The system does not require knowledge of the total number of replicas.
- Resilience: The system handles dropped, reordered, corrupted, or duplicated network messages, as well as network partitions (which resolve once connectivity is restored).
- Conflict Resolution: It uses a delta-CRDT Add-Wins Observed-Removed set. The value for a key is determined by the highest priority, where priority is defined by the height of the Merkle-CRDT node where the key was introduced.