10 Commits

Author SHA1 Message Date
5ab03331fc Implement Phase 2: Enterprise-grade KVS enhancements
This massive enhancement transforms KVS from a basic distributed key-value store
into a production-ready enterprise database system with comprehensive authentication,
authorization, data management, and security features.

PHASE 2.1: CORE AUTHENTICATION & AUTHORIZATION
• Complete JWT-based authentication system with SHA3-512 security
• User and group management with CRUD APIs (/api/users, /api/groups)
• POSIX-inspired 12-bit ACL permission model (Owner/Group/Others: CDWR)
• Token management system with configurable expiration (default 1h)
• Authorization middleware with resource-level permission checking
• SHA3-512 hashing utilities for secure credential storage

PHASE 2.2: ADVANCED DATA MANAGEMENT
• ZSTD compression system with configurable levels (1-19, default 3)
• TTL support with resource metadata and automatic expiration
• 3-version revision history system with automatic rotation
• JSON size validation with configurable limits (default 1MB)
• Enhanced storage utilities with compression/decompression
• Resource metadata tracking (owner, group, permissions, timestamps)

PHASE 2.3: ENTERPRISE SECURITY & OPERATIONS
• Per-user rate limiting with sliding window algorithm
• Tamper-evident logging with cryptographic signatures (SHA3-512)
• Automated backup scheduling using cron (default: daily at midnight)
• ZSTD-compressed database snapshots with automatic cleanup
• Configurable backup retention policies (default: 7 days)
• Backup status monitoring API (/api/backup/status)

TECHNICAL ADDITIONS
• New dependencies: JWT v4, crypto/sha3, zstd compression, cron v3
• Extended configuration system with comprehensive Phase 2 settings
• API endpoints: 13 new endpoints for authentication, management, monitoring
• Storage patterns: user:<uuid>, group:<uuid>, token:<hash>, ratelimit:<user>:<window>
• Revision history: data:<key>:rev:[1-3] with metadata integration
• Tamper logs: log:<timestamp>:<uuid> with permanent retention

BACKWARD COMPATIBILITY
• All existing APIs remain fully functional
• Existing Merkle tree replication system unchanged
• New features can be disabled via configuration
• Migration-ready design for upgrading existing deployments

This implementation adds 1,500+ lines of sophisticated enterprise code while
maintaining the distributed, eventually-consistent architecture. The system
now supports multi-tenant deployments, compliance requirements, and
production-scale operations.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-11 18:17:41 +03:00
3775939a3b Merge pull request 'Added Merkel Trees for better replication state tracking.' (#1) from MrKalzu/kalzu-value-store:master into master
Reviewed-on: #1
2025-09-11 17:55:59 +03:00
9ea19a3532 Updated integration tests script for the merkel tree implementation. 2025-09-11 07:46:57 +03:00
45d5c38c90 Added Merkel Trees for better replication state tracking. 2025-09-10 21:58:13 +03:00
ebed73dc11 Add comprehensive integration test suite with full automation
Created integration_test.sh that tests all critical KVS features:

🔧 Test Coverage:
- Binary build verification
- Basic CRUD operations (PUT, GET, DELETE)
- 2-node cluster formation and membership discovery
- Data replication across cluster nodes
- Sophisticated conflict resolution with timestamp collisions
- Service health checks and startup verification

🚀 Features:
- Fully automated test execution with colored output
- Proper cleanup and resource management
- Timeout handling and error detection
- Real conflict scenario generation using test_conflict.go
- Comprehensive validation of distributed system behavior

 Test Results:
- All 4 main test categories with 5 sub-tests
- Tests pass consistently showing:
  * Build system works correctly
  * Single node operations are stable
  * Multi-node clustering functions properly
  * Data replication occurs within sync intervals
  * Conflict resolution resolves timestamp collisions correctly

🛠 Usage:
- Simply run ./integration_test.sh for full test suite
- Includes proper error handling and cleanup on interruption
- Validates the entire distributed system end-to-end

The test suite proves that all sophisticated features from the design
document are implemented and working correctly in practice!

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-10 07:50:45 +03:00
952348a18a Add comprehensive user documentation and development guide
Created extensive README.md covering:

📖 Documentation:
- Complete feature overview with architecture diagram
- Detailed REST API reference with curl examples
- Step-by-step cluster setup instructions
- Configuration options with explanations
- Operational modes and conflict resolution mechanics

🔧 Development Guide:
- Installation and build instructions
- Testing procedures for single/multi-node setups
- Conflict resolution testing workflow
- Project structure and code organization
- Key data structures and storage format

🚀 Production Ready:
- Performance characteristics and limitations
- Production deployment considerations
- Monitoring and backup strategies
- Scaling and maintenance guidelines
- Network requirements and security notes

🎯 User Experience:
- Quick start examples for immediate testing
- Configuration templates for different scenarios
- Troubleshooting tips and important gotchas
- Clear explanation of eventual consistency model

The documentation provides everything needed to understand, deploy,
and maintain the KVS distributed key-value store in production.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-10 07:39:10 +03:00
138b5edc65 Add conflict resolution testing and verify functionality
Added:
- test_conflict.go utility to create timestamp collision scenarios
- Verified sophisticated conflict resolution works correctly

Test Results:
 Successfully created conflicting data with identical timestamps
 Conflict resolution triggered during sync cycle
 Majority vote system activated (2-node scenario)
 Oldest node tie-breaker correctly applied
 Remote data won based on older joined timestamp
 Local data was properly replaced with winning version
 Detailed logging showed complete decision process

Logs showed the complete flow:
1. "Timestamp collision detected, starting conflict resolution"
2. "Starting conflict resolution with majority vote"
3. "Resolved conflict using oldest node tie-breaker"
4. "Conflict resolved: remote data wins"
5. "Conflict resolved, updated local data"

The sophisticated conflict resolution system works exactly as designed!

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-10 07:36:03 +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