Add architecture package and application skeleton
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# ADR 002: Storage And Persistence Model
|
||||
|
||||
## Status
|
||||
|
||||
Accepted
|
||||
|
||||
## Context
|
||||
|
||||
Проект не должен начинаться с чисто временного `in-memory` мышления, иначе потом придется переделывать:
|
||||
|
||||
- task lifecycle;
|
||||
- event log;
|
||||
- confirmations;
|
||||
- worker session tracking;
|
||||
- replay и audit.
|
||||
|
||||
## Decision
|
||||
|
||||
Хранилище проектируется как persistent-first:
|
||||
|
||||
- production target: PostgreSQL;
|
||||
- local development fallback: SQLite без Docker;
|
||||
- repository interfaces определяются в application/domain boundary;
|
||||
- materialized current state хранится отдельно от append-only event log;
|
||||
- критические переходы состояний должны логироваться как события.
|
||||
|
||||
## Data Model Principles
|
||||
|
||||
1. `tasks`, `task_nodes`, `confirmations`, `worker_sessions` хранят текущее состояние.
|
||||
2. `task_events` хранит audit trail и feed для replay/debugging.
|
||||
3. Вызовы моделей, MCP и worker сохраняются как отдельные invocation records.
|
||||
4. Артефакты хранят metadata в БД, а payload может лежать во внешнем файловом хранилище.
|
||||
|
||||
## Consequences
|
||||
|
||||
Плюсы:
|
||||
|
||||
- можно строить UI progress и audit без догадок;
|
||||
- проще реализовать replay/resume;
|
||||
- нет боли миграции с “простых dict” на реальную БД.
|
||||
|
||||
Минусы:
|
||||
|
||||
- немного более сложный старт;
|
||||
- нужно заранее аккуратно продумать схему.
|
||||
|
||||
Reference in New Issue
Block a user