- Client SDK will connect to a node, get node information and decide if
it needs to connect to a primary for writes, or pick a replica to
connect to for reads
- Updated service with a GetNodeInfo rpc call which returns information
about the node to enable the smart selection code in the sdks
- Primary nodes will connect to the WAL for observations, start a gRPC
server for replication, and shutdown properly
- Replica nodes will connect to the primary, apply received entries to
local storage, and enforce read-only mode for consistency
- Integrates the decision primary/replica/standalone into the kevo cli
Adds a complete LSM-based storage engine with these features:
- Single-writer based architecture for the storage engine
- WAL for durability, and hey it's configurable
- MemTable with skip list implementation for fast read/writes
- SSTable with block-based structure for on-disk level-based storage
- Background compaction with tiered strategy
- ACID transactions
- Good documentation (I hope)