4.9 KiB
4.9 KiB
Operations: Scheduler, Events, Errors, SLO
Версия: 0.1.0-draft | Статус: Draft
1. Scheduler
Приоритетная очередь запусков с поддержкой fair scheduling.
Очереди
| Очередь | Приоритет | Описание |
|---|---|---|
| Priority Queue | 0 (высший) | Критические задачи, ручной запуск |
| Fair Queue | 1 | Обычные задачи, round-robin по workspace |
| Retry Queue | 2 | Задачи после transient failure |
| Delayed Queue | 3 | Отложенные задачи (cron, schedule) |
| Approval Queue | — | Задачи, ожидающие approval (блокируют слот агента) |
Параметры планировщика
| Параметр | Значение |
|---|---|
| Макс. concurrent runs на connector | 5 |
| Макс. concurrent runs на agent | 1 |
| Preemption | Выключена в MVP |
| Fair share | Минимум 1 слот на workspace |
| Retry backoff | 1min, 5min, 15min, 1h, затем fail |
| Max queued per workspace | 100 |
2. Event Bus
Durable event bus с гарантией at-least-once доставки.
События
| Событие | Payload | Частота |
|---|---|---|
run.created |
run_id, task_id, agent_id, goal | ~1/min |
run.started |
run_id, connector_id, timestamp | ~1/min |
run.completed |
run_id, duration, tokens, cost | ~1/min |
run.failed |
run_id, error_code, error_message | ~0.1/min |
run.cancelled |
run_id, cancelled_by | ~0.05/min |
approval.requested |
approval_id, run_id, action, risk | ~2/day |
approval.granted |
approval_id, approved_by | ~2/day |
approval.denied |
approval_id, denied_by, reason | ~0.5/day |
connector.online |
connector_id, version, agents | ~0.1/day |
connector.offline |
connector_id, last_heartbeat | ~0.1/day |
connector.degraded |
connector_id, missed_heartbeats | ~0.2/day |
artifact.created |
artifact_id, run_id, name, size | ~5/min |
memory.updated |
memory_id, key, scope, version | ~1/min |
skill.registered |
skill_id, name, version | ~0.1/day |
Гарантии доставки
| Свойство | Значение |
|---|---|
| Доставка | At-least-once |
| Порядок | Per-run (внутри одного run — строгий порядок) |
| Дедупликация | По event_id (idempotency key) |
| Хранение | 30 дней |
| Версионирование | Все схемы эволюционируют additive-only |
3. Error Catalog
Единый каталог ошибок с кодами по подсистемам.
| Код | Подсистема | Описание | HTTP |
|---|---|---|---|
| AUTH-001 | Auth | Invalid credentials | 401 |
| AUTH-002 | Auth | Token expired | 401 |
| AUTH-003 | Auth | Insufficient permissions | 403 |
| CONN-001 | Connector | Registration failed | 400 |
| CONN-002 | Connector | Heartbeat timeout | 408 |
| CONN-003 | Connector | Version incompatible | 409 |
| RUN-001 | Run | Agent busy | 409 |
| RUN-002 | Run | Quota exceeded | 429 |
| RUN-003 | Run | Invalid goal format | 400 |
| RUN-004 | Run | Run not found | 404 |
| APPROVAL-001 | Approval | Self-approval denied | 403 |
| APPROVAL-002 | Approval | Approval expired | 410 |
| ARTIFACT-001 | Artifact | Upload failed | 500 |
| ARTIFACT-002 | Artifact | Size limit exceeded | 413 |
| MEM-001 | Memory | Key conflict | 409 |
| SKILL-001 | Skill | Signature invalid | 403 |
| WIKI-001 | Wiki | Page locked | 423 |
4. SLO / SLA
Целевые показатели качества обслуживания.
SLO (Service Level Objectives)
| Метрика | Цель | Окно |
|---|---|---|
| API availability | 99.5% | monthly |
| p95 latency (REST read) | < 200ms | rolling 1h |
| p95 latency (REST write) | < 500ms | rolling 1h |
| Event delivery (p95) | < 2s | rolling 1h |
| Run dispatch (p99) | < 10s | rolling 1h |
| Search latency (p95) | < 500ms | rolling 1h |
| Artifact upload (p95) | < 30s per MB | rolling 1h |
SLA (Service Level Agreements) — целевые, не контрактные в MVP
| Метрика | Цель |
|---|---|
| Time to detect connector offline | < 90s |
| Time to recover connector | < 5min (ручной) |
| Max data loss (events) | < 5min окно |
| RPO (артефакты) | < 1h |
| RTO (полное восстановление) | < 4h |
5. API Versioning
| Версия | Статус | Дата |
|---|---|---|
| /api/v1 | Draft | Q3 2026 |
| /api/v2 | Planned | Q1 2027 (breaking changes) |
Правила:
- MAJOR version в URL (/api/v1, /api/v2)
- MINOR changes — additive (новые поля, эндпоинты)
- Deprecation: минимум 3 месяца уведомления через Sunset header
- Старые версии: 6 месяцев поддержки после выхода новой MAJOR