Add architecture package and application skeleton

This commit is contained in:
2026-07-03 21:09:47 +03:00
parent 7d6cc1c83e
commit ce2b263e52
47 changed files with 2377 additions and 53 deletions
+46
View File
@@ -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” на реальную БД.
Минусы:
- немного более сложный старт;
- нужно заранее аккуратно продумать схему.