Expand description
§Configuration Hot-Reload System
This module provides live configuration reloading capabilities with comprehensive error handling, validation, atomic updates, and rollback support for the Air daemon.
§Features
- File System Monitoring: Real-time detection of configuration file changes
- Signal Handling: SIGHUP support for manual configuration reload triggers
- Atomic Swaps: Thread-safe configuration updates without service interruption
- Automatic Rollback: Revert to previous configuration on validation failure
- Change Tracking: Detailed audit trail of all configuration changes
- Validation Pipeline: Multi-stage validation with custom validators
- Retry Logic: Automatic retry with exponential backoff on transient failures
- Notification System: Callback system for configuration change events
- Graceful Degradation: System continues operating even if hot-reload fails
§Integration with Configuration System
The hot-reload system works in tandem with the main configuration module:
- Uses same validation logic from Configuration module
- Shares configuration schema and structure
- Provides runtime updates without requiring service restart
- Scales horizontally across multiple Air instances
§Connection to Mountain and Wind Services
Configuration changes detected by hot-reload are propagated to:
- Mountain: User settings synchronized in real-time
- Wind: All background services notified of configuration updates
- VSCode: Frontend receives configuration change events
§Signal Handling
Supports the following Unix signals for manual control:
SIGHUP: Force configuration reload from diskSIGUSR1: Hot-reload status informationSIGUSR2: Disable/enable hot-reload monitoring
§Notification Flow
Config file changed → File watcher detected → Load & Validate
↓ ↓
Atomic swap ←- Validation passed ←-- Migration applied
↓
Notify subscribers → Wind services update → Mountain sync
↓
Change history logged → Rollback state updated§Error Recovery
The system implements a robust error recovery strategy:
- Validation failures: Automatic rollback to previous valid configuration
- Parse errors: Keep existing configuration, log error, continue monitoring
- File system errors: Temporary pause in monitoring, retry with backoff
- Concurrent modifications: Use atomic file operations, retry on conflict
§Performance Considerations
- Debouncing: Multiple rapid changes trigger single reload after cooldown
- Async operations: Non-blocking file I/O and validation
- Lock-free reads: Configuration reads don’t block other operations
- Efficient diffing: Only process changed configuration sections
TODO: Add distributed configuration synchronization across multiple Air instances TODO: Implement configuration change broadcasting to connected Wind services TODO: Add configuration version conflict resolution (multi-master scenarios)
Structs§
- Auth
Config Validator - Validator for authentication configuration
- Config
Change - Individual configuration change
- Config
Change Event - Configuration change event for subscribers
- Config
Change Record - Configuration change record
- Config
HotReload - Configuration hot-reload manager with file watching and validation
- Download
Config Validator - Validator for downloader configuration
- Grpc
Config Validator - Validator for GRPC configuration
- Indexing
Config Validator - Validator for indexing configuration
- Logging
Config Validator - Validator for logging configuration
- Performance
Config Validator - Validator for performance configuration
- Update
Config Validator - Validator for update configuration
Enums§
- Reload
Request - Reload request from external sources
Traits§
- Config
Validator - Configuration validation trait