2.6 KiB
Subsystem Notes Index
The current, phase-free architecture summary is:
Start there when you want to understand how the application works now.
This directory contains deeper notes for individual subsystem boundaries. These notes were originally written during the phased architecture work, so some files may still mention migration steps or target-state language. Treat them as companion notes, not as the source of truth when they disagree with the current architecture summary.
Recommended Reading Order
- Current System Architecture
- RuntimeStore
- RuntimeCoordinator
- RuntimeSnapshotProvider
- ControlServices
- RenderEngine
- VideoBackend
- HealthTelemetry
That order follows the current ownership story:
- durable state first
- mutation and publication next
- control ingress after that
- render ownership and video timing next
- operational visibility last
Subsystem Notes
- RuntimeStore: durable runtime-state facade over layer-stack, config, package-catalog, presentation, and persistence boundaries.
- RuntimeCoordinator: mutation validation, state classification, reset/reload policy, and publication/persistence requests.
- RuntimeSnapshotProvider: render-facing snapshot publication boundary backed by explicit render snapshot building/versioning.
- ControlServices: OSC, HTTP/WebSocket, and file-watch ingress plus normalization and service-local buffering.
- RenderEngine: GL ownership boundary, render-local transient state, preview, and playout-ready frame production.
- VideoBackend: device lifecycle, input/output pacing, buffer policy, and producer/consumer playout behavior.
- HealthTelemetry: logs, warnings, counters, timing traces, and subsystem health snapshots.
Historical Documents
The docs/PHASE_* files and experiment logs record how the architecture evolved. They are useful when you need rationale, investigation history, or rejected paths, but they are no longer arranged as the main feature split for the app.
For current implementation work, use Current System Architecture as the entry point and only dip into the phase documents when you need context for why a subsystem ended up this way.