summaryrefslogtreecommitdiff
path: root/src/main/java/events/VSRegisteredEvents.java
AgeCommit message (Collapse)Author
2026-03-27sr: retune Raft replay for faster reelectionPaul Buetow
2026-03-26Add initial Raft protocol skeleton for bc61c489-f41b-473b-8c9b-91959ad958f7Paul Buetow
2025-06-22Remove all Raft protocol codePaul Buetow
Removed all Raft-related code as it was not working properly: - Removed VSRaftProtocol.java implementation - Removed all Raft test files - Removed Raft example/demo files - Removed Raft documentation - Removed Raft simulation files (.dat) - Removed Raft scripts - Updated VSRegisteredEvents to remove Raft registration - Updated SimulationBuilder to remove RAFT constant - Updated SimulationFactory to remove Raft methods - Updated SimulationBuilderTest to remove Raft tests - Updated pom.xml to remove Raft test configurations The protocol had issues with leader election not completing in GUI mode. 🤖 Generated with Claude Code https://claude.ai/code Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-20Implement Raft consensus algorithm for distributed systems simulatorPaul Buetow
This commit adds a complete implementation of the Raft consensus algorithm, providing a robust solution for achieving consensus in distributed systems. Key features implemented: - Three-state system: Follower, Candidate, and Leader states - Leader election with randomized election timeouts (150-300ms) - Log replication for state machine commands - Heartbeat mechanism to maintain leader authority - Safety guarantees through term numbers and log consistency checks - Proper handling of split votes and network partitions Implementation details: - Added VSRaftProtocol.java with full Raft algorithm logic - Integrated with existing event-driven simulation framework - Supports dynamic cluster sizes with proper quorum calculations - Implements RequestVote and AppendEntries RPCs - Maintains persistent state (currentTerm, votedFor, log entries) - Includes comprehensive logging for debugging and visualization Testing: - Added VSRaftProtocolTest.java with unit tests covering: - Leader election scenarios - Log replication mechanics - State transitions - Message handling for all RPC types Integration: - Registered protocol in VSRegisteredEvents for simulator discovery - Added human-readable names in VSDefaultPrefs for UI display - Compatible with existing visualization and timing systems This implementation follows the Raft paper closely while adapting to the simulator's event-driven architecture and message-passing model. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-20Add comprehensive Javadoc documentation for public APIsPaul Buetow
- Document core classes: VSTask, VSMessage, VSInternalProcess - Document event interfaces: VSAbstractEvent, VSCopyableEvent, VSTime - Document timestamp events: VSTimestampTriggeredEvent, VSLamportTimestampEvent - Document protocol framework: VSAbstractProtocol methods - Document VSSimulator and VSRegisteredEvents - Add detailed method descriptions with parameter and return value docs - Include usage examples and cross-references between related classes 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-20Complete implementation of timestamp event classesPaul Buetow
- Add language strings for all timestamp events and demo protocol in VSDefaultPrefs - Register new timestamp events and protocol in VSRegisteredEvents: - VSLamportTimestampEvent - VSVectorTimestampEvent - VSTimestampMonitorEvent - VSTimestampTriggeredEvent - VSTimestampDemoProtocol - Integrate VSVectorClockMonitor into VSInternalProcess: - Add vectorClockMonitor field - Override increaseVectorTime() and updateVectorTime() to trigger monitor - Clear monitor events on reset - Add getVectorClockMonitor() accessor - Add serialization support to VSTimestampTriggeredEvent for persistence - Fix VSTimestampDemoProtocol to use process's vector clock monitor - All 132 unit tests pass 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-06Modernize project structure, update Maven config, move sources, add logging ↵Paul Buetow
config, update README and .gitignore