Архитектура
Модули верхнего уровня
- Frontend (React/Vite): пользовательский интерфейс (админка и кабинеты ролей)
- Backend API (FastAPI): доменная логика, авторизация, интеграции
- Supabase: PostgreSQL + Auth + Storage + Realtime (как платформа данных и авторизации)
- Worker (Celery): фоновые задачи
- Rust API: отдельные сервисные endpoint'ы (в т.ч. “поиск”)
- Analytics: ClickHouse/Superset (частично), Grafana (если включено)
- Reverse proxy: Nginx
Границы ответственности
- Frontend: маршруты, UI-состояния, вызовы API, хранение токенов на клиенте, проксирование /api в dev через Vite
- Backend (FastAPI): бизнес-правила, валидация, доступ к данным (через Supabase/PostgreSQL), сервисные операции, аудит/аналитика
- Supabase: Auth (auth.users), политика доступа (RLS), хранилище файлов, realtime-каналы
- Worker: “тяжёлые” операции, интеграционные ретраи, отложенные задачи
Потоки данных (основные)
- Пользователь → Frontend → Backend API → PostgreSQL/Supabase
- Frontend → Supabase (клиент в браузере) для Auth/Realtime/Storage (в зависимости от сценария)
- Frontend/Backend → Analytics (события) → PostgreSQL/Redis/ClickHouse → Grafana/Superset (если настроено)
Точки интеграции
- Платежи (например YooKassa) — backend
/payments/*
- Карты (Yandex Maps / Mapbox) — frontend компоненты + внешняя API
- Уведомления (OneSignal) — frontend SDK + backend триггеры (требует актуализации)
Источники данных
- PostgreSQL (через Supabase): основной операционный источник истины
- Redis: кеш/счётчики/реалтайм-слой
- MongoDB: вспомогательное хранилище (уточнить домены)
- ClickHouse: аналитические события (если включено)
Риски и слабые места
- Расхождение контрактов между frontend/backend (типы TS vs Pydantic/DB)
- Дублирование источников документации и статусов задач (Plans/Projects/Knowledge vs docs/*)
- Зависимость от окружения и портов (в dev важны внутренние/внешние URL)
Допущения и ограничения
- Локальный запуск ориентирован на Docker Compose
- Supabase используется как единый слой Auth/DB/Storage
Связанные документы
- [[docs/04_инфраструктура/инфраструктура]]
- [[docs/06_backend/backend]]
- [[docs/07_frontend/frontend]]
- [[docs/08_api/api]]
- [[docs/18_графы/graph_архитектура]]