ADR-observability-001
execution_id routing for concurrent runs
Context
Multiple Agent Loop nodes could run simultaneously on the same canvas. WebSocket events need to reach the correct output nodes without cross-contamination.
Decision
Frontend generates a UUID (execution_id) per Play click. All backend WebSocket events are tagged with this ID. Frontend maintains activeExecutions[executionId] mapping to route events to the correct output nodes.
Alternatives
(a) Single global execution — only one agent loop runs at a time. (b) Channel-based WebSocket multiplexing.
Rationale
UUID tagging is simple, stateless on the backend, and scales to any number of concurrent runs. No need for WebSocket channel management complexity.
Affected docs
architecture.md