A minimal, Dynamo-style leaderless sharded and replicated key-value store written in Go.

- Consistent Hashing: Partitions key-space across nodes via a consistent hashing ring.
- Quorum Reads & Writes: Coordinates client operations with configurable quorum logic (e.g., 2-of-3 replicas) to maintain consistency.
- Read Repair: Identifies and repairs lagging or inconsistent replicas during read operations.
- Tombstone Deletions: Coordinates deletions via tombstones and write quorum replication to prevent key resurrection.
- Crash Recovery: Persists data to a Write-Ahead Log (WAL) to restore state upon node restart.
To start a local 3-node cluster, run each command in a separate terminal:
# Start Node A on :8001
go run main.go 1
# Start Node B on :8002
go run main.go 2
# Start Node C on :8003
go run main.go 3Clients can interact with any node in the cluster.
curl -X PUT -H "Content-Type: application/json" -d '{"value": "my-data"}' http://localhost:8001/my-keycurl http://localhost:8001/my-keycurl -X DELETE http://localhost:8001/my-keycurl http://localhost:8001/Run unit and integration tests using:
go test ./...