Commit Graph

7 Commits

Author SHA1 Message Date
f9e332096c feat: Update client sdk (Go) with smart connection logic
- 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
2025-04-29 15:03:03 -06:00
4429836929 feat: Add replication manager to manage primary/replica
- 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
2025-04-29 15:03:03 -06:00
83163db067 chore: go fmt 2025-04-29 15:03:03 -06:00
2bc2fdafda feat: Add heartbeat support in replication
- Created a heartbeat that monitors sessions and sends heartbeats
  between nodes
- Updated the primary to include a heartbeat manager
2025-04-29 15:03:03 -06:00
0d923f3f1d feat: Replica node implementation
- Created state handlers for all replication states
- Implemented transitions based on received data
- Added a WAL entry applier with validation
- Implemented connection/reconnection management
- Implemented ACK/NACK tracking and verification
2025-04-29 15:03:03 -06:00
8b4b4e8bc2 feat: Add primary node implementation
- Created the WAL observer for the primary
- Implements session management and connection tracking
- Implemented the WAL streaming service over gRPC
- Connected WAL retrention to acknowledgements
2025-04-29 15:03:03 -06:00
01cd007e51 feat: Extend WAL to support observers & replication protocol
- WAL package now can notify observers when it writes entries
- WAL can retrieve entries by sequence number
- WAL implements file retention management
- Add replication protocol defined using protobufs
- Implemented compression support for zstd and snappy
- State machine for replication added
- Batch management for streaming from the WAL
2025-04-29 15:03:03 -06:00