The TestDocsConsistency walk only iterated [".", "guides", "reference",
"analysis"] — concepts/ was silently invisible, which is why
amazon-music-oauth.md slipped into the tree without a SUMMARY entry.
Refactored to walk the entire docs/ tree, with a small dirsToSkip
allow-list (_includes, archive, diagrams, images) for asset trees.
New top-level narrative directories are picked up automatically;
only asset dirs need an explicit entry.
The wider walk surfaced six previously-hidden concepts/* files. Five
older planning artefacts ("Enhanced State Management System",
"Upstream Bose Service Simulation") moved into docs/archive/ where
the dirsToSkip already excludes them; concepts/README.md renamed to
upstream-service-simulation-overview.md since "README.md" inside
archive/ would be misleading. Spotify Overview and Amazon Music
OAuth are user-facing narrative docs and are now linked under
Concepts in SUMMARY.md.
Note: concepts/streborn-patterns.md is internal review notes (its
own opening line says so) and is currently unlinked from SUMMARY.md;
will be handled separately by the maintainer.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
13 KiB
Implementation Roadmap for Upstream Service Simulation
Overview
This document provides a detailed implementation roadmap for the upstream Bose service simulation concept. It breaks down the implementation into manageable phases with specific deliverables, technical requirements, and integration points.
Phase 1: Foundation and Enhanced State Tracking (4-6 weeks)
Milestone 1.1: Account Management Service (1-2 weeks)
Deliverables
pkg/service/account/package with core account management- Account creation, retrieval, and status management APIs
- Text-based account persistence in JSON format
- Integration with existing datastore structure
Implementation Tasks
-
Create Account Manager
pkg/service/account/ ├── account.go # Core account management ├── manager.go # Account manager implementation ├── persistence.go # File-based persistence └── account_test.go # Comprehensive tests -
Account Data Structure
- JSON-based account metadata storage
- Integration with existing
data/accounts/{id}/structure - Account status tracking (active, migrating, suspended)
- Migration metadata tracking
-
API Integration
- Add account management endpoints to existing HTTP router
- RESTful API alongside existing XML endpoints
- Account creation validation and error handling
Technical Requirements
- Maintain backward compatibility with existing account structure
- Thread-safe account operations
- Atomic file operations for account metadata
- Comprehensive error handling and logging
Milestone 1.2: Device Lifecycle Manager (2-3 weeks)
Deliverables
pkg/service/lifecycle/package for device state management- Device state machine with comprehensive state tracking
- Event-driven state transitions
- Integration with existing device discovery and migration
Implementation Tasks
-
Lifecycle Core
pkg/service/lifecycle/ ├── lifecycle.go # Device lifecycle management ├── states.go # State definitions and transitions ├── events.go # Event processing ├── persistence.go # Lifecycle persistence └── lifecycle_test.go # State machine tests -
State Machine Implementation
- Define device states: unregistered → registering → active → migrating → offline → retired
- Implement state transition rules and validation
- Event-driven state changes with history tracking
- Integration with existing migration system
-
Event Processing
- Asynchronous event queue for device events
- Event categorization and filtering
- Text-based event logging with structured format
- Event replay capabilities for debugging
Technical Requirements
- Non-blocking event processing
- Persistent state across service restarts
- Integration with existing WebSocket event system
- Memory-efficient event storage
Milestone 1.3: Enhanced Mirror System (1-2 weeks)
Deliverables
- Extended mirroring with disparity detection
- Parity analysis logging and reporting
- Selective data source switching
- Integration with existing mirror middleware
Implementation Tasks
-
Disparity Detection
pkg/service/mirror/ ├── disparity.go # Disparity detection logic ├── analyzer.go # Response analysis and comparison ├── logger.go # Structured disparity logging └── disparity_test.go # Analysis tests -
Enhanced Mirror Middleware
- Extend existing mirror functionality
- Add response comparison and hash calculation
- Structured logging of disparities
- Configurable disparity sensitivity
-
Data Source Management
- Smart routing between local and upstream sources
- Per-endpoint source preference configuration
- Fallback mechanisms for upstream unavailability
- Source switching with history tracking
Technical Requirements
- Minimal performance impact on request processing
- Configurable disparity detection sensitivity
- Structured logging for analysis tools
- Integration with existing mirror configuration
Phase 2: Migration and Dual-Source Management (3-4 weeks)
Milestone 2.1: Migration Controller (2-3 weeks)
Deliverables
- Device-by-device migration orchestration
- Migration progress tracking and status reporting
- Rollback capabilities with state preservation
- Integration with existing setup manager
Implementation Tasks
-
Migration Orchestration
pkg/service/migration/ ├── controller.go # Migration orchestration ├── strategy.go # Migration strategies ├── rollback.go # Rollback functionality ├── progress.go # Progress tracking └── migration_integration_test.go -
Migration Strategies
- Fresh device registration flow
- Bose account data migration flow
- Gradual migration with dual-source support
- Emergency migration for service outages
-
Progress Tracking
- Real-time migration status updates
- Migration timeline and milestone tracking
- Error handling and recovery procedures
- Migration completion verification
Technical Requirements
- Integration with existing migration system
- Atomic migration operations with rollback
- Progress persistence across service restarts
- Comprehensive migration logging
Milestone 2.2: Dual-Source Data Management (1-2 weeks)
Deliverables
- Smart data routing between local and upstream sources
- Graceful fallback mechanisms
- Data source preference management
- Conflict resolution strategies
Implementation Tasks
-
Data Source Router
pkg/service/datasource/ ├── router.go # Smart routing logic ├── preferences.go # Source preference management ├── fallback.go # Fallback mechanisms └── conflict.go # Conflict resolution -
Source Management
- Per-device, per-endpoint source preferences
- Dynamic source switching based on availability
- Conflict detection and resolution
- Source health monitoring
-
Integration Points
- Marge service integration for account data
- BMX service integration for content data
- Preset and recent management integration
- Source configuration management
Technical Requirements
- Zero-downtime source switching
- Conflict resolution without data loss
- Health check integration
- Performance monitoring and metrics
Phase 3: Advanced Features and Analytics (2-3 weeks)
Milestone 3.1: System Monitoring and Health Checks (1-2 weeks)
Deliverables
- Comprehensive system health monitoring
- Device connectivity and availability tracking
- Performance metrics collection
- Health check endpoints and dashboards
Implementation Tasks
-
Health Monitoring
pkg/service/health/ ├── monitor.go # System health monitoring ├── metrics.go # Performance metrics ├── connectivity.go # Device connectivity tracking └── alerts.go # Health alerting -
Metrics Collection
- Device availability tracking
- Response time monitoring
- Error rate tracking
- Migration success rates
-
Dashboard Integration
- Health status endpoints
- Metrics export for monitoring tools
- Real-time status updates
- Historical trend analysis
Technical Requirements
- Minimal performance overhead
- Configurable monitoring intervals
- Integration with existing health checks
- Memory-efficient metrics storage
Milestone 3.2: Data Export and Backup (1 week)
Deliverables
- Account data export functionality
- Incremental backup strategies
- Data integrity verification
- Migration-ready data formats
Implementation Tasks
-
Export Functionality
pkg/service/export/ ├── exporter.go # Data export logic ├── formats.go # Export format definitions ├── validation.go # Data integrity checks └── backup.go # Backup strategies -
Backup Management
- Incremental backup creation
- Backup validation and verification
- Automated backup scheduling
- Restore functionality
-
Data Formats
- Migration-ready JSON exports
- XML compatibility for device imports
- Compressed archive support
- Selective export capabilities
Technical Requirements
- Consistent data export across all account types
- Backup integrity verification
- Configurable export scheduling
- Resource-efficient backup operations
Integration Strategy
Existing Service Integration Points
1. Datastore Integration
- Extend existing datastore with lifecycle and account management
- Maintain backward compatibility with current file structure
- Add new persistence methods for enhanced state tracking
- Implement migration for existing data to new formats
2. Handler Integration
- Integrate account management into existing HTTP handlers
- Add lifecycle information to device responses
- Extend mirror middleware with disparity detection
- Add new management endpoints alongside existing XML APIs
3. Discovery Integration
- Link device discovery to lifecycle state transitions
- Integrate migration triggers with discovery events
- Add account association during discovery
- Maintain existing discovery functionality
4. Migration System Integration
- Extend existing migration manager with new capabilities
- Integrate lifecycle management with device migrations
- Add rollback functionality to existing migration flows
- Maintain compatibility with current migration methods
Configuration Management
New Configuration Options
accounts:
auto_create: false
mirror_enhanced_creation: true
default_migration_strategy: "gradual"
lifecycle:
event_retention_days: 30
state_transition_timeout: "5m"
async_processing: true
mirror:
disparity_detection: true
disparity_sensitivity: "medium"
source_switching_enabled: true
fallback_timeout: "10s"
migration:
batch_size: 1
progress_reporting: true
rollback_enabled: true
verification_required: true
Performance Considerations
Resource Usage
- Target: <100MB additional memory usage on Raspberry Pi Zero 2W
- CPU usage: <5% additional overhead during normal operations
- Storage: Text-based logs with configurable rotation
- Network: Minimal additional upstream requests
Optimization Strategies
- Lazy loading of historical data
- Configurable log retention policies
- Memory-efficient event processing
- Background cleanup processes
- Efficient file I/O operations
Testing Strategy
Unit Testing
- Comprehensive test coverage for all new packages
- State machine transition testing
- Data persistence and integrity tests
- Mock integration tests for external dependencies
Integration Testing
- End-to-end migration flow testing
- Multi-device scenario testing
- Disparity detection accuracy testing
- Performance impact testing
Compatibility Testing
- Backward compatibility with existing installations
- Device compatibility across SoundTouch models
- Migration from various existing configurations
- Stress testing with multiple concurrent devices
Deployment Strategy
Rollout Plan
- Alpha Release: Core functionality with limited device support
- Beta Release: Full feature set with extensive testing
- Stable Release: Production-ready with documentation
Migration Path
- Existing installations can upgrade incrementally
- New features are opt-in with configuration flags
- Existing data structures are preserved and extended
- Rollback capability for critical issues
Documentation Requirements
- Updated API documentation with new endpoints
- Migration guide for existing users
- Configuration reference for new options
- Troubleshooting guide for common issues
Risk Mitigation
Technical Risks
- Data Loss: Atomic operations and rollback capabilities
- Performance Impact: Gradual rollout and monitoring
- Compatibility Issues: Comprehensive testing and fallback options
- Resource Constraints: Efficient algorithms and configurable limits
Operational Risks
- Service Disruption: Zero-downtime deployment strategies
- Configuration Complexity: Sensible defaults and validation
- User Adoption: Clear documentation and migration assistance
- Support Burden: Comprehensive logging and diagnostic tools
Success Metrics
Technical Metrics
- Migration success rate >95%
- Disparity detection accuracy >90%
- Performance overhead <5%
- System availability >99.5%
User Experience Metrics
- Reduced support requests
- Improved device reliability
- Faster problem resolution
- Enhanced system visibility
This roadmap provides a structured approach to implementing the upstream service simulation concept while maintaining compatibility with existing deployments and ensuring smooth migration paths for users.