1.6 KiB
1.6 KiB
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
tasks,task_nodes,confirmations,worker_sessionsхранят текущее состояние.task_eventsхранит audit trail и feed для replay/debugging.- Вызовы моделей, MCP и worker сохраняются как отдельные invocation records.
- Артефакты хранят metadata в БД, а payload может лежать во внешнем файловом хранилище.
Consequences
Плюсы:
- можно строить UI progress и audit без догадок;
- проще реализовать replay/resume;
- нет боли миграции с “простых dict” на реальную БД.
Минусы:
- немного более сложный старт;
- нужно заранее аккуратно продумать схему.