A distributed key-value database built from scratch in Go, featuring Raft consensus, TCP-based communication, and crash recovery mechanisme.
This is a learning project and not production-ready
- Basic KV Operations: PUT, GET, DELETE commands
- REPL Interface: Interactive command-line interface
- In-Memory Storage: Fast key-value storage with concurrent access
- Write-Ahead Log (WAL): Append-only log for crash recovery
- Snapshot System: Periodic state snapshots for log compaction
- Crash Recovery: Automatic recovery from WAL and snapshots
- Data Durability: Guaranteed persistence of committed operations
- Raft Implementation: Leader election and log replication
- TCP Communication: Custom binary protocol for node communication
- Cluster Managemenet: Multi-node coordination and failure handling
- Leader Election: Automatic leader failover and recovery
- TCP Server/Client: Custom protocol with message framing
- Binary Protocol: Efficient network communication
- Connection Management: Persistent connections between nodes
- Message Routing: Reliable message delivery between nodes