Add architecture package and application skeleton
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
# 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.
|
||||
|
||||
Reference in New Issue
Block a user