Библиотека устойчивости для Python: без runtime-зависимостей, чтобы интеграции останавливались предсказуемо, а не каскадом.
- Спроектировал и опубликовал на PyPI единый async API (await breaker.call / декоратор только для coroutine): OPEN-окно и пробный вызов в HALF_OPEN.
- State machine CLOSED → OPEN → HALF_OPEN с хранилищем в памяти или Redis — общее состояние на несколько воркеров.
- Релиз: uv + hatchling, CI на Python 3.10–3.13 (pytest, mypy, Ruff, pip-audit), публикация на PyPI по тегам.
Под капотом
- Python 3.10–3.13
- asyncio
- redis.asyncio
- pytest
- mypy
- Ruff
- uv / hatchling
- GitHub Actions
- PyPI Trusted Publishing
PyPI ·
GitHub
Асинхронный backend генерации изображений: слоистая архитектура, устойчивость к внешним API и мониторинг в production.
- Многослойный backend (~400 модулей): домен отдельно от ORM и HTTP, политики доступа.
- Пайплайн генерации к GigaChat: retry → circuit breaker → rate limit; Redis-кэш поверх SQLAlchemy 2 async + PostgreSQL.
- Мониторинг: Prometheus + Grafana / Loki; CI — mypy strict, Ruff, ~110 тестов, multi-stage Docker.
Под капотом
- Python 3.12
- aiogram 3
- SQLAlchemy 2 / PostgreSQL
- Redis
- httpx
- Tenacity
- Prometheus
- Grafana / Loki
- Docker
- GitHub Actions
Telegram-бот ·
GitHub
Модульный bash-клиент (~1.7k LOC): dumps → backup → forget/prune → check → отчёт в Telegram. Несколько jobs на одном хосте, systemd timer.
- Слои вместо одного скрипта: конфиг, restic, дампы, блокировки, уведомления.
- Два бэкенда репозитория (SFTP и REST+TLS); если дамп упал — бэкап не пишется; без гонок по одному repo.
- Политика хранения и проверка целостности, отчёты в Telegram, ShellCheck в CI, секреты вне git.
Под капотом
- Bash 4.1+
- restic
- systemd
- OpenSSH / SFTP
- SQLite / PostgreSQL
- Telegram Bot API
- ShellCheck
- GitHub Actions
GitHub
Сайт-приглашение: контент из YAML без пересборки, ответы гостей в JSON, уведомления в Telegram.
- FastAPI + Jinja2 SSR и REST RSVP на Pydantic 2; контент в config.yaml, обновляется без rebuild образа.
- Форма RSVP с проверкой на сервере, запись ответов в volume, статус на странице; сбой Telegram не откатывает сохранение.
- Production: Docker Compose, секреты через .env, Traefik + Let's Encrypt.
Под капотом
- Python 3.12
- FastAPI
- Pydantic 2
- Jinja2
- Tailwind CSS
- Docker / Compose
- Traefik
- Let's Encrypt
GitHub