← всі звіти · 03-architecture.md

sparc_phase: A project: <project-slug> created: <YYYY-MM-DD> author: <name> status: draft | review | approved spec_link: ./01-specification.md pseudocode_link: ./02-pseudocode.md

Architecture — Архітектура: стек, файли, інтерфейси — <Project / Feature Name>

Стек

Компонент Технологія Чому
Backend Python 3.11 + FastAPI вже у стеку, async для …
Storage sqlite overkill уникаємо, локальні дані …
Auth mTLS / API key
Hosting systemd unit на VPS

Файлова структура

/srv/projects/<slug>/
├── README.md
├── pyproject.toml
├── src/
│   ├── api.py          # HTTP endpoint(s)
│   ├── models.py       # data structures
│   ├── service.py      # бізнес-логіка
│   └── integrations/
│       └── external.py
├── tests/
│   ├── test_service.py
│   └── test_integrations.py
└── ops/
    ├── systemd-unit.service
    └── deploy.sh

Компоненти і відповідальності

Ключові інтерфейси

# service.py
class Service:
    def process(self, input: InputModel) -> ResultModel: ...
    def validate(self, x: InputModel) -> None: ...   # raises
    def persist(self, result: ResultModel) -> None: ...

Потоки даних (Data flow)

[Client] ─POST /endpoint─> [api.py validate]
                                │
                                ▼
                        [service.process]
                          │           │
                          ▼           ▼
                 [external API]  [storage]
                          │           │
                          └─────┬─────┘
                                ▼
                         [response 200]

Безпека

Деплой і інфраструктура

Спостережуваність

Відкриті питання

Sign-off