How ktaffy/distributed-kv works
This repository implements a distributed key-value store: clients issue GET/PUT/DELETE requests, while configured nodes coordinate through Raft and persist replicated state. The documented product also includes consistent-hash placement, crash recovery, and snapshots. Sampled code confirms the node’s ownership of Raft state, network, and persistence components; some application-level wiring and the exact client-to-node request path were not sampled, so those links are not expanded beyond documented behavior.
Main entry points: raft_node.cpp Raft node · network_manager.cpp Network manager · main.cpp Node entry · kv_store.cpp KV client
Components 14
Client API
- KV client
src/kvstore/kv_store.cpp
Raft Consensus
- Raft node
src/raft/raft_node.cpp - Raft state
src/raft/raft_state.cpp - Log entries
src/raft/log_entry.cpp
Storage Engine
- Key-value store
src/kvstore/kv_store.cpp - Consistent hashing
src/kvstore/consistent_hash.cpp - Persistent state
src/persistence/persistent_state.cpp - Log and snapshots
src/persistence/log_storage.cpp
Node Transport
- Network manager
src/network/network_manager.cpp - RPC messages
src/network/message.cpp
Node Runtime
- Node entry
src/main.cpp - Configuration
src/utils/config.cpp
Other components
- Client
- Cluster peers
Connections 13
- Client → KV client: issues operations
- KV client → Client: returns result
- Node entry → Configuration: loads settings
- Node entry → Raft node: starts node
- Raft node → Raft state: updates consensus
- Raft node → Network manager: sends and handles RPCs
- Raft node → Persistent state: persists term and vote
- Raft node → Log and snapshots: reads and replicates log
- Raft node → Key-value store: applies committed data
- Key-value store → Consistent hashing: chooses placement
- Log and snapshots → Log entries: stores entries
- Network manager → RPC messages: serializes and dispatches
- Network manager → Cluster peers: exchanges RPCs