1.1 KiB
1.1 KiB
ADR 003: User Event Stream Transport
Status
Accepted
Context
UI требует поток событий по task execution:
task_startednode_startednode_completedconfirmation_requiredtask_completedtask_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.