Игровая платформа: где нельзя ошибиться ни на копейку
Проект, в котором интерфейс — самая простая часть. Основная работа ушла в транзакционную целостность кошелька, поведение при отказе провайдера и нагрузку, которая в пике отличается от средней в разы.
- Отрасль
- iGaming, лицензированный оператор
- Состав
- Ядро платформы, агрегация провайдеров, бэк-офис
- Срок запуска
- от 6 месяцев до первого релиза
- Стек
- Go, Node.js, PostgreSQL, Redis, Kafka, Kubernetes
Задача бизнеса
Оператору нужна была собственная платформа вместо аренды готового решения у стороннего вендора. Аренда означала зависимость от чужих условий, невозможность менять бонусную механику под свою аудиторию и отсутствие контроля над данными игроков.
Что оказалось сложным на самом деле
Список отсортирован по количеству потраченного времени, а не по заметности для игрока
Целостность кошелька
Двойное списание или потерянная ставка в iGaming — это не баг, а прямые финансовые потери и репутационный удар.
Идемпотентность на всех денежных операциях: повтор запроса при обрыве связи не создаёт вторую транзакцию. Каждая операция имеет уникальный ключ, повторное обращение возвращает результат первой, а не выполняет её заново.
Баланс не хранится как одно изменяемое число — он выводится из журнала операций. Любое изменение прослеживается до источника, и расхождение можно найти, а не только констатировать.
Отказ провайдера роняет всё
Игровых провайдеров подключено много, и каждый — потенциальная точка отказа. Наивная реализация укладывает платформу целиком, если один из них перестал отвечать.
Изоляция сбоев: каждый провайдер работает через отдельный контур с таймаутами и автоматическим отключением при деградации. Недоступный провайдер просто исчезает из каталога, а остальная платформа продолжает работать.
Отдельный сценарий — сессия, оборванная на середине игры. Здесь нужен корректный разбор состояния со стороны провайдера, а не просто списание или возврат ставки наугад.
Нагрузка неравномерна
Вечерние часы, выходные и турниры дают всплески в разы выше среднего. Платформа, спроектированная под среднее, ляжет в момент максимальной выручки.
Горизонтальное масштабирование под фактическую нагрузку, очереди для тяжёлых операций, кеширование каталога и справочников, отделение операций чтения от записи.
Перед запуском — нагрузочное тестирование на сценариях, приближенных к реальным: не «сколько запросов в секунду выдержит сервер», а «что происходит, когда десять тысяч человек одновременно заходят на турнир».
Бонусы правились кодом
Каждая новая акция требовала участия разработчиков — маркетинг не мог запустить механику без релиза.
Конструктор правил в бэк-офисе: приветственные пакеты, фриспины, кешбэк, вейджер и условия отыгрыша настраиваются без правки кода.
Обязательная часть — симуляция: перед запуском акции видно, во сколько она обойдётся при разных сценариях поведения игроков. Бонусная механика без такой проверки регулярно оказывается убыточной.
Бонус-абьюз и мультиаккаунты
Щедрая акция без защиты превращается в способ вывода денег с платформы.
Антифрод и KYC: верификация личности, скоринг подозрительной активности, выявление связанных аккаунтов, лимиты и правила блокировок.
Выплаты идут через очередь с автоматическим одобрением по правилам и ручной модерацией для операций, попавших в зону риска. Полностью автоматизировать вывод средств нельзя — цена ошибки слишком высока.
Требования регулятора
Отчётность, лимиты и журналирование нельзя добавить перед проверкой — они пронизывают всю модель данных.
Заложены в архитектуру с первого дня: возрастные ограничения, лимиты на депозиты и время игры, механизмы самоисключения и пауз, полный журнал действий и выгрузка отчётности в требуемом формате.
Инструменты ответственной игры входят в базовый состав платформы. Мы не рассматриваем их как опцию, которую можно исключить ради экономии бюджета.
Собственные игры или провайдеры
Основной каталог собирается из игр внешних провайдеров: быстрее, дешевле и снимает вопросы сертификации контента. Собственная разработка оправдана только там, где игра становится отличием платформы.
В этом проекте своей сделали рулетку с provably fair — механизмом, позволяющим игроку самостоятельно проверить, что результат раунда был определён до его ставки и не подменён. Для оператора это аргумент доверия, который нельзя купить рекламой.
Всё остальное — провайдерский контент. Мы отговорили заказчика от разработки собственных слотов: расходы несопоставимы с эффектом, а конкурировать с профильными студиями на их поле бессмысленно.
Состав платформы
- Ядро: кошелёк, сессии, история ставок, учёт баланса
- Агрегация провайдеров с единым каталогом и фильтрами
- Собственная рулетка с provably fair
- Платежи: депозиты, очередь выплат, сверка транзакций
- Бонусный движок с конструктором правил и симуляцией
- Антифрод и KYC с ручной модерацией зоны риска
- Бэк-офис: игроки, транзакции, GGR и NGR, отчётность
- Партнёрская программа с трекингом и кабинетом партнёра
- Клиенты: веб и PWA там, где публикация в сторах невозможна
Мониторинг по деньгам, а не по серверам
Нагрузка на процессор ничего не говорит о том, что у платформы проблемы
Падение ставок в минуту
Самый быстрый индикатор проблемы. Реагирует раньше, чем серверные метрики покажут что-либо аномальное.
Конверсия депозитов
Резкий спад означает, что сломался конкретный платёжный провайдер, а не платформа целиком.
Очередь выплат
Рост времени вывода бьёт по репутации сильнее, чем короткий простой сайта.
Расхождения при сверке
Ежедневная сверка с провайдерами и платёжными системами. Любое расхождение — инцидент, а не статистика.
Что мы вынесли из проекта
Интерфейс — не главное
Игрок судит о платформе по скорости и по тому, приходят ли выплаты. Оба фактора живут в серверной части, а не в дизайне.
Своя игра — не всегда актив
Одна фирменная механика с проверяемой честностью даёт больше, чем десяток собственных слотов, которые проигрывают провайдерским.
Комплаенс — это архитектура
Лимиты, самоисключение и отчётность, добавленные в конце, ломают модель данных. Их закладывают на старте или переписывают платформу.
Планируете свою платформу?
Опишите юрисдикцию, целевые нагрузки и модель монетизации — вернёмся с архитектурным предложением.
18+. Азартные игры могут вызывать зависимость. Мы оказываем услуги разработки программного обеспечения юридическим лицам и не принимаем ставки.