AniWay Reload — подробный кейс
Микросервисная платформа с очередями, объектным хранилищем, realtime‑каналами и полным стеком наблюдаемости. Проект демонстрирует наш подход к сложным системам: продуманная декомпозиция, эксплуатационная зрелость с первого дня и архитектура, которую можно масштабировать или упрощать под бюджет.
О проекте
AniWay Reload — платформа для чтения манги с социальным слоем и realtime‑функциями. Контент — лишь верхушка: под капотом — распределённая система с изолированными доменами, асинхронными интеграциями и production‑ready инфраструктурой. Проект собран так, чтобы его можно было развивать, масштабировать и передавать другой команде без «потери контекста».
Демонстрируемые компетенции
- Проектирование доменов и границ сервисов без «монолита на микросервисах»
- Realtime‑сценарии: SSE, WebSocket, очереди, безопасная доставка событий
- Эксплуатация: метрики, алерты, лимиты ресурсов, предсказуемый деплой
Почему мы показываем этот проект
Проекты такого уровня редко встречаются в госзаказах до 1 млн рублей — там обычно монолиты с базовой функциональностью. Типичный тендер на 300–500К — это 10–15 тысяч строк кода. AniWay в 5–10 раз сложнее. Мы демонстрируем этот кейс, чтобы показать потолок наших возможностей. Ваш проект за 200–700К мы закроем с запасом — и сделаем это качественно.
Интерфейс платформы
Скриншоты основных экранов и функций
Функциональные домены
Система разбита на изолированные контуры с чёткими границами и ответственностью. Каждый домен — отдельный сервис со своей БД, что упрощает развитие, тестирование и замену компонентов.
- Манга/главы, парсинг и актуализация данных
- Хранение и выдача изображений через объектное хранилище
- Границы доменов и отдельные БД для изоляции изменений
- Комментарии, посты, форумные обсуждения
- Друзья, личные сообщения и чаты
- Событийные интеграции и realtime-сценарии
- SSE-стримы для обновлений в UI
- WebSocket-маршруты для интерактивных сценариев
- Очереди RabbitMQ как основа асинхронных событий и задач
- Healthchecks и метрики на уровне сервисов
- Централизованная наблюдаемость (метрики, графики, алерты)
- Раздельные dev/prod окружения в Docker Compose
Архитектура
API Gateway — единая точка входа, маршрутизация и контракт API. Reverse proxy (Caddy) терминирует TLS, прокидывает SSE/WebSocket и разделяет маршруты.
Каждый домен изолирован в своём сервисе и БД — изменения в одном контуре не ломают другие. Межсервисная коммуникация через RabbitMQ: события и фоновые задачи не блокируют API.
Медиаконтент вынесен в MinIO (S3‑совместимый API) — бизнес‑логика и хранение файлов разделены, сервисы разгружены от тяжёлых операций.
(async) Domain Service → RabbitMQ → Consumer → Notification/Scheduler → SSE/WebSocket
Структура репозитория
Домены выделены в отдельные модули, инфраструктура и мониторинг лежат рядом. Всё, что нужно для запуска — в одном репозитории.
Инфраструктура: dev и prod
Раздельные Docker Compose для dev и prod. Dev‑окружение оптимизировано под быстрые итерации (volume‑маунты, hot reload). Prod‑compose — лимиты CPU/RAM, restart policies, строгие параметры.
Все зависимости (PostgreSQL, RabbitMQ, MinIO) контейнеризированы — окружение воспроизводимо на любом стенде, демонстрация или тестовый контур разворачивается за минуты.
Наблюдаемость
Полный стек мониторинга из коробки: Prometheus собирает метрики со всех сервисов и инфраструктуры, Grafana визуализирует дашборды, Alertmanager отвечает за правила и доставку уведомлений. Деградации, пики, ошибки интеграций — видны до того, как пользователи начнут жаловаться.