41 lines
1.1 KiB
Markdown
41 lines
1.1 KiB
Markdown
# ADR 003: User Event Stream Transport
|
||
|
||
## Status
|
||
|
||
Accepted
|
||
|
||
## Context
|
||
|
||
UI требует поток событий по task execution:
|
||
|
||
- `task_started`
|
||
- `node_started`
|
||
- `node_completed`
|
||
- `confirmation_required`
|
||
- `task_completed`
|
||
- `task_failed`
|
||
|
||
В исходных документах упомянуты `SSE/WebSocket`, но как основной transport нужно выбрать один.
|
||
|
||
## Decision
|
||
|
||
Основной transport для пользовательского event stream: Server-Sent Events.
|
||
|
||
WebSocket не исключается, но считается вторичным adapter для будущих realtime-потребностей.
|
||
|
||
## Rationale
|
||
|
||
SSE проще для:
|
||
|
||
- однонаправленного server-to-client прогресса;
|
||
- проксирования;
|
||
- reconnect semantics;
|
||
- дебага и совместимости с обычными HTTP-инструментами.
|
||
|
||
WebSocket нужен не UI в первую очередь, а local worker transport.
|
||
|
||
## Consequences
|
||
|
||
`GET /tasks/{id}/events` фиксируется как SSE endpoint.
|
||
|