- PHP · Symfony / Laravel
- PostgreSQL
- Redis
- Kafka / RabbitMQ
- Docker / Podman
- Kubernetes
- GitLab CI/CD
Challenge
An operator needs a base for several brands, not one system. Every launch on a platform of its own multiplies the same work: game provider integrations, bonus logic, back-office processes and operations.
Load is peaky and uneven — a tournament or a campaign multiplies traffic within minutes — and platform downtime costs more than any feature.
Solution
Player management, bonus mechanics, analytics and back-office processes run on a shared platform. Game provider integrations live at platform level, so the next brand inherits them instead of wiring them again, while brand data stays separated.
Peak load is designed in: events are processed through a queue, reads are separated from writes, and services scale horizontally with current traffic. Losing a node does not take the platform out — that is the mode it was built for, not an incident for operations to work through.
Outcome
A new brand launches on the shared platform through configuration rather than as a separate system: integrations, bonus mechanics and back-office are reused. Peak traffic is absorbed by horizontal scaling, and a failed node does not turn into downtime.