Клиент: KBC

Домен:

iGaming, BigData #iGaming #BigData

Какие задачи перед нами ставились / Какие проблемы решали:

Необходимо реализовать сбор и очистку данных из внешней системы. Проблема в том что данные представляют собой больше пакеты (2-8гб) доступные по http. При этом часто внутри находится некорректный XML, потому что система продюсер не знает ничего о необходимости экранировать данные полученные от пользователей. На основании полученных данных необходимо отправлять события в 3rd party системы. На оснвании полученных данных нужно делать выводы о качестве трафика.

Как реализовали:

Было две итерации разработки решения. В первой реализации мы использовали NodeJS и реализовали SAX-parser для XML который мог бы игнорировать ошибки. Однако с течением времени объем загружаемых данных кратно вырос и даже в реализации со Streams потребление ресурсов перестало быть адекватным. Во второй итерации мы переписали решение на GoLang, что позволило существенно сократить потребление ресурсов. Сохранение данных происходит в BigQuery, в который поступают данные и их других источников (GA etc). На базе загружаемых данных так же добавлена отдельная системя для отправки вебхуков, с конфигурированием через привычный всем GoogleSheets.

Какие технологии мы использовали:

NodeJS, GoLang, BigQuery, SQL, Google PubSub, GoogleFirebase

Сколько людей всего работали на проекте:

2 engineer, 1 devops engineer