Шаблон, а не фреймворк: мой стартовый бэкенд на Python
Каждый новый сервис я начинал с одной и той же обвязки. В итоге собрал её в публичный шаблон: два самостоятельных сервиса, строгие слои, готовые паттерны и понятная дока. MIT, забирайте.
Проекты · записи
Мои универсальные базовые шаблоны для разного рода сервисов на Python: event-driven монорепо — Litestar API (strict S-DDD, outbox, админка) + FastStream/SAQ-воркер. MIT.
Тут я храню свои общие универсальные базовые шаблоны для разного рода сервисов на Python. Это не библиотека, а именно шаблон: форкаешь, переименовываешь, выкидываешь лишнее — и сразу пишешь бизнес-логику в готовой структуре.
Монорепо из двух независимых сервисов. Общего кода у них нет — только wire-контракт поверх Valkey Streams:
Живой цикл целиком: 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 — форкай на здоровье.
Каждый новый сервис я начинал с одной и той же обвязки. В итоге собрал её в публичный шаблон: два самостоятельных сервиса, строгие слои, готовые паттерны и понятная дока. MIT, забирайте.