Backend агрегатора онлайн игр

Цена договорная
06 ноября 2019, 12:46 • 4 отклика • 55 просмотров
Дано:
Бекенд сервер, который взаимодействует с различными провайдерами (поставщики игр, может быть неограниченное количество, для каждого будет написан свой код для интеграции (т.к. все используют свои протоколы и тп особенности)
Провайдеры постоянно сообщают на бэк состояние игрока - действия, изменения баланса и тд.
Поступает от 400 до 600 запросов в секунду, прогнозом роста 30-50% в год.
Каждый запрос должен быть записан в БД (определенные данные).

В базе необходимо хранить данные за 18 месяцев.
Объем прироста базы, при 400 запросах в секунду: 1.4млн записей в час, 34 млн в сутки, 12,6 млрд записей в год

Также, в системе есть дополнительные подсистемы, например, “подсистема бонусов”. При поступлении запроса от провайдера, копия запроса поступает в систему бонусов, для дальнейшей обработки (в соответствии с правилами - может применяться сложная логика) - детали сейчас не принципиальны, но это надо понимать, что такие системы есть.

Требования:
* обеспечение бесперебойной работы системы, при взаимодействии с провайдерами, и с базой.
* Оперативное (онлайн) обновление данных по балансу игрока (сразу, по мере поступления запросов) - важно обеспечить надежность и целостность.
* Важно обеспечить целостность базы, нельзя допускать возможности потери данных при поступлении от провайдера, т.к. это несет финансовые потери для компании.
* Важно обеспечить балансировку и распределение нагрузки,
* Балансировщик при обновлении системы, должен переключать нагрузку на новые ноды, а старые плавно выводить из работы, для обеспечения бесперебойной работы системы.
* Обеспечение бесперебойной работы.

Предположительный стек:
ubuntu, postgreSQL, redis, golang, kubernetes, rabbitMQ

предложения по альтернативным стекам готов рассмотреть.

проект для индивидуального серьезного разработчика, который хочет поучаствовать в интересном проекте.

Важно: откликайтесь, только те, кто имеет реальный опыт работы с высоконагруженными проектами.
при отклике указывайте проекты, для которых вы вели разработку, а так же, какую роль вы выполняли.

Пожалуйста, не пишите: студии, начинающие, без опыта, любители выпытывать бюджеты.


остальные детали - в переписке.
упрощенная схема системы в приложенном файле.
Файлы