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

Сегодня Апельсин — это полноценный платежный сервис с партнёрской экосистемой из десятка крупных брендов и стабильной работой под нагрузкой до 2 000 RPS.

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

Коротко о функционале продукта — по ссылке.

В 2024 году к нам обратилась команда Апельсина. Компания хотела разработать сервис, который будет мотивировать пользователей использовать предложения партнёров, чтобы увеличивать свой % кешбэка, и получать с каждой покупки на единый бонусный счёт Апельсинки — так называется валюта лояльности, которую можно копить и списывать в магазинах и у партнёров Апельсина.

Апельсин — это не просто сервис. Он объединяет партнёров и пользователей в одном цифровом пространстве. Главная цель проекта — обеспечить клиентам самый большой кешбэк за продукты питания.

Это технически сложный проект: нужно было обеспечить надёжную работу под высокой нагрузкой и гибко адаптировать систему под требования разных партнёров. К тому же, требовалось запустить программу за 3 месяца, а это амбициозная задача, учитывая масштаб интеграции.

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

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

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

Увидев, насколько качественно и глубоко описан первый блок, мы были уверены, что команда продолжит работать на таком же высоком уровне и дальше.

«Проведенная аналитика позволила сэкономить месяцы разработки. Благодаря этому MVP удалось запустить всего за 2 месяца после старта»

Игорь Латкин
Управляющий партнёр KTS, head of backend

В апреле с командой Апельсина запустили MVP в формате friends & family — в тестировании участвовали все сотрудники, кому был интересен продукт.

«Отмечу позитивный момент KTS — они готовы стартовать в условиях неполной определенности и с пониманием важности дедлайнов от бизнеса»

Артём Пономарёв
Руководитель направления аналитики Апельсина

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

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

Апельсин объединил более 10 партнёров. Пользователи получают Апельсинки за использование предложений партнёров, например, за переход на тариф билайн или покупку страхового полиса. Апельсинки можно потратить не только на покупку товаров в торговых сетях, но и на другие услуги, например связь, страховку и даже благотворительность.

Основной сложностью была интеграция и обеспечение корректного взаимодействия с каждым партнёром. Необходимо было получать оповещение от каждого из них о выполнении целевых действий пользователями и точном начислении/списании Апельсинок.

Для этого мы разработали универсальное API. Но в некоторых случаях пришлось доработать API для тех, кто не успевал или не мог самостоятельно внедрить необходимые адаптации.

Для одного из партнеров, например, создали адаптеры, которые преобразуют их данные в формат Апельсина. Это минимизировало изменения на стороне партнёра и ускорило интеграцию.

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

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

Весь сервис построен на микросервисной архитектуре — это когда система состоит из независимых сервисов, каждый из которых отвечает за свою функцию. Такой подход требует детальной проработки всех процессов взаимодействия наших микросервисов друг с другом и сервисами партнеров.

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

Есть и минус: разработка 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. Это позволило сегментировать пользователей и отправлять персонализированные уведомления, например, по количеству накопленных Апельсинок.

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

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

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