- PHP · Symfony / Laravel
- PostgreSQL
- Redis
- Kafka / RabbitMQ
- Docker / Podman
- Kubernetes
- GitLab CI/CD
Задача
Оператору нужна не одна система, а основа для нескольких брендов. Каждый запуск со своей платформой умножает одно и то же: интеграции с игровыми провайдерами, бонусную логику, административные процессы и эксплуатацию.
Нагрузка при этом пиковая и неравномерная — турнир или кампания дают кратный трафик за минуты, — а простой платформы стоит дороже любой доработки.
Решение
Управление игроками, бонусные механики, аналитика и административные процессы работают на общей платформе. Интеграции с игровыми провайдерами реализованы на её уровне, поэтому очередной бренд получает их готовыми, а не подключает заново; данные брендов при этом разделены.
Пиковая нагрузка заложена в основание: события обрабатываются через очередь, чтение разведено с записью, состав сервисов масштабируется горизонтально под текущий трафик. Отказ отдельного узла не выводит платформу из работы — это режим, к которому она спроектирована, а не случай, который разбирают на эксплуатации.
Результат
Новый бренд запускается на общей платформе настройкой, а не отдельной системой: интеграции, бонусные механики и администрирование переиспользуются. Пиковый трафик принимается горизонтальным масштабированием, а отказ узла не превращается в простой.