A high-performance, fault-tolerant distributed key-value database built from scratch in Go. Features Sharding, Write-Ahead Logging (WAL), and Consistent Hashing.
Real-time cluster operation showing the Proxy (right) routing requests via Consistent Hashing to specific Shards (left), with persistence logs active.
NanoKV is designed as a distributed system where data is partitioned across multiple nodes to ensure horizontal scalability.
graph TD
Client[Client / CLI] -->|HTTP POST /set| Proxy[LB / Proxy Node :9000]
Proxy -->|Consistent Hashing| NodeA[Shard 0 :8080]
Proxy -->|Consistent Hashing| NodeB[Shard 1 :8081]
Proxy -->|Consistent Hashing| NodeC[Shard 2 :8082]
NodeA --> Disk[(WAL Log)]
NodeB --> Disk
NodeC --> Disk