Decision acceptance deadline

26.10.26 (inclusive)

Form of award

По договорённости

Product status

MVP

Task type

ICT tasks

Сфера применения

Media sphere

Область задачи

Processing and storage of Big Data

Purpose and description of task (project)

Мы развиваем мобильное приложение для спортивных болельщиков (основная аудитория — Северная Америка): пользователи следят за отдельными спортсменами и получают push-уведомления о вызовах в состав, травмах, трансферах и игровых событиях. Backend работает на Google Cloud Platform: микросервисы на Go в Cloud Run и GKE, шина событий Google Cloud Pub/Sub, приём фидов от нескольких сторонних поставщиков спортивных данных и доставка уведомлений через FCM/APNs на клиент на Flutter. Ищем команду или специалиста для профилирования и перепроектирования конвейера, чтобы live-события доставлялись пользователям в гарантированное время даже в пиковые игровые окна.

Type of product

Software/ IS

Problem description

В пиковые дни (много матчей одновременно, день открытия сезона, дедлайн трансферов) входящий поток событий возрастает в 30–50 раз за несколько минут. В результате: задержка от события поставщика до push-уведомления растёт с ~2 с до 40–90 с; накапливается backlog подписок Pub/Sub, автомасштабирование Cloud Run не успевает; поставщики часто присылают события повторно, что вызывает дубли уведомлений; события одного матча приходят и обрабатываются не по порядку, что даёт ошибочные уведомления (например, «травма» после «вернулся в строй»); популярных спортсменов отслеживает очень много пользователей, поэтому одно событие порождает миллионы push-уведомлений и «горячие точки»; облачные затраты растут из-за избыточного резервирования, так как нет понятной модели масштабирования.

Expected effect

Ускорение доставки уведомлений в пике примерно в 10 раз (p95 ≤ 3 с, p99 ≤ 5 с при 30-кратной нагрузке); полное устранение дублей и ошибочных уведомлений; снижение облачных затрат на 20–30% за счёт предсказуемого масштабирования; рост удержания пользователей во время live-событий.

Full name of responsible person

Калмыков Андрей

Note

Требования к решению: стенд нагрузочного тестирования с воспроизведением записанного пикового трафика и сквозной трассировкой (OpenTelemetry/Cloud Trace); перепроектирование конвейера (ключи упорядочивания Pub/Sub по матчу/спортсмену, exactly-once или идемпотентная обработка, DLQ-топики, настройка flow control и ack deadline); многоуровневый fan-out (тематические рассылки FCM, шардирование списков подписчиков, батчинг); автомасштабирование Cloud Run/GKE по backlog с прогревом перед матчами по расписанию; дашборды и алерты по сквозной задержке. Целевые метрики при 30× нагрузке: p95 ≤ 3 с, p99 ≤ 5 с, 0 дублей, 0 нарушений порядка, стоимость на 1 млн уведомлений не выше текущей. Формат взаимодействия: удалённо, итерации по 2 недели, доступ к staging-среде и обезличенным журналам трафика, NDA; результат — код, IaC (Terraform) и документация. Email: [email protected]