Как запустить сервис лояльности за 3 месяца с партнёрской экосистемой из 10+ брендов

Сервис лояльности, который стабильно работает при нагрузке до 2 000 RPS (запросов в секунду) и интегрирован с крупными партнёрами — X5 Group, Альфа-Банк, АльфаСтрахование, Билайн, а также Lamoda, М.Видео, SOKOLOV и др.

Коротко о функционале продукта — по ссылке.
В 2024 году к нам обратилась команда Апельсина. Компания хотела разработать сервис лояльности, который будет мотивировать пользователей использовать предложения партнёров, чтобы увеличивать свой % кешбэка, и получать с каждой покупки на единый бонусный счёт Апельсинки — так называется валюта лояльности, которую можно копить и списывать в магазинах «Пятёрочка», «Перекрёсток» и у партнёров Апельсина.
Апельсин — это не просто сервис лояльности. Он объединяет партнёров и пользователей в одном цифровом пространстве. Главная цель проекта — обеспечить клиентам самый большой кешбэк за продукты питания.
Это технически сложный проект: нужно было обеспечить надёжную работу под высокой нагрузкой и гибко адаптировать систему под требования разных партнёров. К тому же, требовалось запустить программу за 3 месяца, а это амбициозная задача, учитывая масштаб интеграции.
В кейсе делимся подробностями, как совместно с командой заказчика удалось решить все задачи и запустить программу в срок.

Челлендж №1: Как запустить MVP за 2 месяца

Мы стартовали в феврале с хорошей детализацией от команды системных аналитиков клиента по одной части системы, но без полной проработки всех требований, которые нужно было реализовать в рамках MVP. Несмотря на это, мы были готовы начать проект, понимая, что ребята смогут детально проработать оставшиеся части по ходу разработки.
Увидев, насколько качественно и глубоко описан первый блок, мы были уверены, что команда продолжит работать на таком же высоком уровне и дальше.
«Проведенная аналитика позволила сэкономить месяцы разработки. Благодаря этому MVP удалось запустить всего за 2 месяца после старта»

Игорь Латкин
Управляющий партнёр KTS, head of backend
В апреле с командой Апельсина запустили MVP в формате friends & family — в тестировании участвовали все сотрудники, кому был интересен продукт.
«Отмечу позитивный момент KTS — они готовы стартовать в условиях неполной определенности и с пониманием важности дедлайнов от бизнеса»

Артём Пономарёв
Руководитель направления аналитики сервиса лояльности Апельсин
Уже готовый сервис лояльности в виде веб- и мобильной версии с 5 микросервисами под капотом запустили после успешного тестирования MVP — в конце июня.

Челлендж №2: Как объединить партнёров уровня Альфа-Банка в единый сервис лояльности

Апельсин объединил более 10 партнёров, включая Х5 Group, Альфа-Банк, АльфаСтрахование, билайн, а также Lamoda, М.Видео, SOKOLOV и др. Пользователи получают Апельсинки за использование предложений партнёров, например, за переход на тариф билайн или покупку страхового полиса. Апельсинки можно потратить не только на покупку товаров в торговых сетях Х5 Group, но и на другие услуги, например связь, страховку и даже благотворительность.
Основной сложностью была интеграция и обеспечение корректного взаимодействия с каждым партнёром. Необходимо было получать оповещение от каждого из них о выполнении целевых действий пользователями и точном начислении/списании Апельсинок.
Для этого мы разработали универсальное API. Но в некоторых случаях пришлось доработать API для тех, кто не успевал или не мог самостоятельно внедрить необходимые адаптации.
Для Lamoda, например, создали адаптеры, которые преобразуют их данные в формат Апельсина. Это минимизировало изменения на стороне партнёра и ускорило интеграцию.
В случае с АльфаСтрахование задача была сложнее: нам нужно было разработать специальную механику для начисления и возврата средств. Это позволило пользователям конвертировать свои Апельсинки в рубли при покупке ОСАГО через АльфаСтрахование.
Такой подход обеспечил гибкость интеграции и позволил оперативно подключать партнеров, даже если они не успели доработать свои системы.

Челлендж №3: Как организовать стабильную работу системы под нагрузкой до 2 000 RPS с помощью микросервисной архитектуры

Весь сервис лояльности построен на микросервисной архитектуре — это когда система состоит из независимых сервисов, каждый из которых отвечает за свою функцию.Такой подход требует детальной проработки всех процессов взаимодействия наших микросервисов друг с другом и с другими сервисами Х5 и сервисами партнеров.
Важно отметить, что микросервисная архитектура подходит не для каждого продукта. Её плюс — изолированное масштабирование: не нужно масштабировать весь продукт, а только те микросервисы, на которые приходится слишком большая нагрузка.
Есть и минус: разработка MVP с микросервисной архитектурой сложнее, чем в рамках монолита, поэтому её не всегда выбирают для старта. Но в этом случае решение было оправдано, потому что нагрузка с самого начала была высокой, новые фичи было удобнее и надежнее добавлять в виде отдельных микросервисов. А с развитием продукта количество микросервисов увеличилось.
«Микросервисный подход — это стандарт для проектирования высоконагруженных сервисов. Учитывая масштаб продукта, самый надежный подход»

Дмитрий Лишманов
Главный архитектор сервиса лояльности Апельсин
В системе сейчас 11 микросервисов, и команда планирует добавить ещё 3. Вот некоторые из них:
  1. Справочник партнёров и заданий — хранит информацию о доступных предложениях и партнёрах.
  2. Сервис данных о клиентах — отвечает за хранение информации о пользователях, использованных предложениях партнёров и количестве Апельсинок на бонусных счетах. Это самый нагруженный микросервис, который сейчас разделяют на два для оптимизации.
  3. Сервис событий — обрабатывает события использования предложений партнёров, начисления и списания Апельсинок.
  4. Сервис транзакций — управляет активацией и деактивацией предложений партнёров, а также начислением и списанием Апельсинок.
Микросервисы взаимодействуют через Apache Kafka — распределённую систему обработки данных в реальном времени. Это обеспечивает высокую производительность и отказоустойчивость. А для надёжности система была протестирована под нагрузкой до 2 000 RPS. Это гарантирует стабильную работу в пиковые моменты.

Челлендж №4: Как оптимизировать расходы на разработку мобильного приложения

Зачем сервису лояльности мобильное приложение? Во-первых, оно всегда перед глазами у пользователей, поэтому они чаще о нём вспоминают. Во-вторых, с его помощью можно отправлять пуш-уведомления. Всё это повышает retention — пользователи активнее пользуются тем, что всегда на виду.
Но с учетом сжатых сроков, нужно было выпустить приложение как можно быстрее. Для этого мы применили две оптимизации.
  1. Переиспользование кода между приложениями Android и iOS. Для этого использовали технологию KMP (Kotlin Multiplatform), что ускорило разработку и сократило затраты.
  2. Часть экранов реализовали в WebView — браузер, встроенный в приложение. Запустить приложение только с WebView было невозможно — для публикации в сторах нужны нативные компоненты. Поэтому личный кабинет, навигация, авторизация и онбординг были реализованы нативно. С одной стороны, мы выполнили требования сторов, с другой — потратили минимум денег за счет переиспользования половины экранов из мобильной веб-версии.
Как это работает: при запуске Апельсина пользователь авторизуется и переходит на главный экран. Основной контент отображается через WebView, а нижняя панель навигации — нативная. Из WebView пользователь также может перейти в личный кабинет.
В результате получилось гибридное приложение, где нативная часть отвечает за ключевые функции, а WebView — за отображение контента.
Кроме того, внедрили в мобильное приложение систему оповещений. На старте использовали консоль Firebase — облачная платформа от Google, а позже перешли на EDNA. Это позволило сегментировать пользователей и отправлять персонализированные уведомления, например, по количеству накопленных Апельсинок.

Как Апельсин продолжает расти

Сейчас сервис лояльности Апельсин — это целая мастер-система по хранению процента кэшбэка, в которую входят бизнесы и сервисы Х5 Group, Альфа-Банк, билайн, АльфаСтрахование и другие партнёры.
Вместе с командой Апельсина мы продолжаем поддерживать и развивать проект. Сейчас работаем над созданием новых фич и интеграций.