Проекты · записи

s1t-python-backend-templates

Мои универсальные базовые шаблоны для разного рода сервисов на Python: event-driven монорепо — Litestar API (strict S-DDD, outbox, админка) + FastStream/SAQ-воркер. MIT.

Тут я храню свои общие универсальные базовые шаблоны для разного рода сервисов на Python. Это не библиотека, а именно шаблон: форкаешь, переименовываешь, выкидываешь лишнее — и сразу пишешь бизнес-логику в готовой структуре.

Что внутри

Монорепо из двух независимых сервисов. Общего кода у них нет — только wire-контракт поверх Valkey Streams:

  • litestar_backend — Litestar API со strict S-DDD-разбиением по контекстам: Dishka DI, transactional outbox + relay, SSE-фид, role-auth, админка с дашбордом и file-tail просмотром логов, Prometheus-метрики.
  • event_microservice — FastStream-консьюмер + SAQ-воркер: читает стрим, раздаёт тяжёлую работу на джобы (async / thread pool / process pool), джойнит результаты и возвращает события обратно.

Живой цикл целиком: POST /videos -> outbox -> video_uploaded -> три джобы -> join -> video_status -> статус-машина PENDING -> PROCESSING -> DONE/FAILED -> SSE в браузер.

Зачем

Каждый новый сервис начинался с одних и тех же решений: слои, ошибки, DI, логи, метрики, тесты. Надоело решать заново — теперь это решено один раз и лежит шаблоном. Внутри два образцовых контекста: media_example (полный S-DDD: доменные события, outbox, тест-пирамида unit/flow/integration/e2e) и db_example_litestar (тонкий CRUD без домен-слоя — когда инвариантов нет).

Доки самодостаточны: architecture.md, wire-контракты, ADR-лог. Открыто под MIT — форкай на здоровье.

записи
· · ·У проекта пока нет записей.