Files
Bose-SoundTouch/docs/archive/upstream-service-simulation-overview.md
Tobias GesellchenandClaude Sonnet 4.6 1421ad5ce1 chore(docs): widen docs-consistency test, archive stale concept docs
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>
2026-05-23 00:34:36 +02:00

9.0 KiB

Upstream Bose Service Simulation - Concept Overview

Executive Summary

This document serves as the entry point for understanding the comprehensive plan to enhance the SoundTouch service with advanced state management capabilities, preparing for the eventual shutdown of Bose's upstream services while providing a superior local management experience.

Project Objectives

Primary Goal

Create a robust replacement for Bose's upstream services that can seamlessly handle the transition from cloud-dependent to fully autonomous operation while maintaining and improving upon the existing functionality.

Key Outcomes

  • Zero-downtime transition from Bose services to local management
  • Enhanced visibility into device states, health, and system operations
  • Data preservation during migrations with full rollback capabilities
  • Improved reliability through local control and reduced external dependencies
  • Future-proof architecture that can evolve beyond Bose's original design

Architecture Vision

Current State

The existing SoundTouch service provides:

  • BMX service for TuneIn integration
  • Marge service for account and device management
  • Basic mirroring of upstream Bose endpoints
  • File-based persistence for device data
  • Migration support for device directory structures

Enhanced State (This Project)

The enhanced system will add:

  • Comprehensive Account Management with explicit creation and migration tracking
  • Device Lifecycle Management with full state machine and event processing
  • Advanced Mirroring with disparity detection and analysis
  • Dual-Source Data Management supporting gradual migration strategies
  • Real-time Monitoring with health checks and performance metrics
  • Text-based Storage optimized for debugging and small hardware deployments

Use Case Coverage

Case 0: Account Management

  • Explicit Account Creation: Accounts created through deliberate user action
  • Mirror-Enhanced Setup: Use upstream data to enrich account creation
  • Passive Data Collection: Record account information during normal operations

Case 1a: Fresh Device Registration

  • Factory Reset Support: Handle devices with no prior Bose association
  • Default Configuration: Initialize devices with sensible presets and sources
  • Local-First Setup: Complete registration without upstream dependencies

Case 1b: Bose Account Migration

  • Data Preservation: Maintain existing presets, recents, and sources
  • Gradual Migration: Support partial migration while maintaining upstream compatibility
  • Rollback Capability: Revert to Bose services if needed

Case 2: Lifecycle and State Management

  • Real-time State Tracking: Monitor device states and health continuously
  • Event-Driven Updates: Process device events asynchronously
  • Disparity Detection: Identify differences between local and upstream behavior
  • Comprehensive Logging: Maintain detailed audit trails for troubleshooting

Technical Approach

Design Principles

  1. Text-First Storage: Human-readable formats (JSON, XML, logs) for easy debugging
  2. Small Hardware Optimization: Designed for Raspberry Pi Zero 2W deployments
  3. Mirror-First Strategy: Keep upstream mirroring active until migration complete
  4. Event-Driven Architecture: Asynchronous processing with comprehensive event tracking
  5. Backward Compatibility: Seamless integration with existing installations

Data Structure

data/
├── accounts/{account-id}/
│   ├── account.json              # Account metadata and settings
│   ├── account-events.log        # High-level account behavior tracking
│   ├── devices/{device-id}/
│   │   ├── lifecycle.json        # Device state and history
│   │   ├── info.xml             # Device information (existing)
│   │   ├── presets.xml          # Device presets (existing)
│   │   ├── recents.xml          # Recent plays (existing)
│   │   ├── sources.xml          # Configured sources (existing)
│   │   └── events.log           # Device event history
│   └── sessions/                # Recorded interaction sessions (existing)
└── system/
    ├── discovery.log            # Device discovery events
    └── migration.log           # Migration activities

Development Targets

  • Simplicity: Keep It Simple, Stupid (KISS) principle over optimization
  • Quality: 100% test pass rate and lint-clean code for every change
  • Compatibility: Zero breaking changes to existing functionality
  • Leveraging: Reuse existing systems (interaction recording, parity detection)

Implementation Strategy

Phase 1: Foundation (2-3 weeks) - Small, Testable Steps

  • Account management foundation with basic create/read operations
  • Device lifecycle data models and simple state tracking
  • Basic API endpoints with comprehensive testing
  • Integration with existing datastore patterns

Phase 2: Device Lifecycle (2-3 weeks) - Build on Existing Systems

  • Event processing using existing WebSocket system
  • Lifecycle integration with current discovery and migration
  • Enhanced logging building on existing parity detection
  • Simple state machine with thorough testing

Phase 3: Enhanced Features (2-3 weeks) - Leverage Current Systems

  • Improve existing parity mismatch detection with better categorization
  • Smart data source routing with fallback mechanisms
  • Basic monitoring using existing health check patterns
  • Reuse interaction recording for request/response tracking

Key Benefits

For Users

  • Continuity: Seamless operation when Bose services shut down
  • Reliability: Local control reduces dependency on external services
  • Visibility: Clear insight into device states and system health
  • Control: Full management of device data and configurations

For Developers

  • Simplicity: KISS principle makes code easy to understand and maintain
  • Quality: Comprehensive testing and linting ensures reliable code
  • Debugging: Text-based storage enables easy troubleshooting
  • Testing: Every change requires full test suite pass and lint compliance

For Community

  • Open Source: Transparent implementation available for community contributions
  • Standards: Well-documented APIs and data formats
  • Collaboration: Disparity detection helps improve implementation accuracy
  • Future-Proof: Architecture designed to outlast original Bose services

Technical Risks

  • Data Loss Prevention: Atomic file operations and comprehensive testing
  • Complexity Creep: KISS principle and simple-first approach
  • Compatibility Issues: Extensive regression testing and existing system reuse
  • Code Quality: Mandatory linting and test coverage for every change

Operational Risks

  • Service Disruption: Small, incremental changes with rollback capability
  • Testing Overhead: Automated quality gates (golangci-lint run --fix + go test ./...)
  • Migration Challenges: Leverage existing migration system and patterns
  • Maintenance Burden: Simple, well-tested code is easier to maintain

Technical

  • All tests pass consistently (100%)
  • Zero linting issues in codebase
  • No breaking changes to existing functionality
  • Code coverage maintained or improved

Quality Assurance

  • Every commit passes golangci-lint run --fix
  • Every milestone passes go test ./...
  • Integration tests verify existing functionality
  • Simple, maintainable code that follows Go idioms

Documentation Structure

This concept is detailed across several documents:

Getting Started

  1. Review the Concept: Read through the main concept document to understand the full scope
  2. Examine Technical Details: Review the technical specification for implementation details
  3. Follow the Roadmap: Use the implementation roadmap for project planning and execution
  4. Integration Planning: Consider how the enhanced features will integrate with existing deployments

Next Steps

  1. Stakeholder Review: Gather feedback on the concept and approach
  2. Technical Validation: Prototype key components to validate technical assumptions
  3. Resource Planning: Allocate development resources for the three-phase implementation
  4. Community Engagement: Share plans with the community for feedback and contributions

This enhanced state management system represents a significant evolution of the SoundTouch service, transforming it from a basic replacement into a comprehensive, future-proof device management platform that can serve users well beyond the Bose service shutdown timeline.