4 Commits

Author SHA1 Message Date
45d5c38c90 Added Merkel Trees for better replication state tracking. 2025-09-10 21:58:13 +03:00
e5c9dbc7d8 Implement sophisticated conflict resolution and finalize cluster
Features completed:
- Sophisticated conflict resolution with majority vote system
- Oldest node tie-breaker for even cluster scenarios
- Two-phase conflict resolution (majority vote → oldest node)
- Comprehensive logging for conflict resolution decisions
- Member querying for distributed voting
- Graceful fallback to oldest node rule when no quorum available

Technical implementation:
- resolveConflict() function implementing full design specification
- resolveByOldestNode() for 2-node scenarios and tie-breaking
- queryMemberForData() for distributed consensus gathering
- Detailed logging of vote counts, winners, and decision rationale

Configuration improvements:
- Updated .gitignore for data directories and build artifacts
- Test configurations for 3-node cluster setup
- Faster sync intervals for development/testing

The KVS now fully implements the design specification:
 Hierarchical key-value storage with BadgerDB
 HTTP REST API with full CRUD operations
 Gossip protocol for membership discovery
 Eventual consistency with timestamp-based resolution
 Sophisticated conflict resolution (majority vote + oldest node)
 Gradual bootstrapping for new nodes
 Operational modes (normal, read-only, syncing)
 Structured logging with configurable levels
 YAML configuration with auto-generation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-10 07:32:16 +03:00
c9b430fc0d Implement gossip protocol and cluster synchronization
Features added:
- Gossip protocol for member discovery and failure detection
- Random peer selection with 1-3 peers per round (1-2 minute intervals)
- Member health tracking (5-minute timeout, 10-minute cleanup)
- Regular 5-minute data synchronization between peers
- Gradual bootstrapping for new nodes joining cluster
- Background sync routines with proper context cancellation
- Conflict detection for timestamp collisions (resolution pending)
- Full peer-to-peer communication via HTTP endpoints
- Automatic stale member cleanup and failure detection

Endpoints added:
- POST /members/gossip - for peer member list exchange

The cluster now supports:
- Decentralized membership management
- Automatic node discovery through gossip
- Data replication with eventual consistency
- Bootstrap process via seed nodes
- Operational mode transitions (syncing -> normal)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-10 07:27:52 +03:00
83ad9eea8c Initial KVS implementation with core functionality
- Go module setup with BadgerDB, Gorilla Mux, Logrus, UUID, and YAML
- Core data structures for distributed key-value store
- HTTP REST API with /kv/ endpoints (GET, PUT, DELETE)
- Member management endpoints (/members/)
- Timestamp indexing for efficient time-based queries
- YAML configuration with auto-generation
- Structured JSON logging with configurable levels
- Operational modes (normal, read-only, syncing)
- Basic health check endpoint
- Graceful shutdown handling

Tested basic functionality - all core endpoints working correctly.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-10 07:20:12 +03:00