ООО "В контакте"
12 000 000
Информационные технологии и интернет
Россия
Май 2026
Клиент — финтех-компания, развивающая цифровой банковский сервис для управления картами, платежами и денежными переводами.
По мере развития продукта увеличивались объёмы обрабатываемых данных, усложнялись интеграции с банковской инфраструктурой, а требования к скорости и надёжности операций становились всё выше.
Существующая технологическая база должна была превратиться в полноценную платформу, способную выдерживать рост транзакционной нагрузки, обеспечивать безопасность финансовых операций и поддерживать подключение новых внешних сервисов.
Перед GreenCore стояла задача спроектировать и реализовать масштабируемую backend-архитектуру, для которой высокая производительность и отказоустойчивость — не дополнительные возможности, а базовые требования.
В основу решения легли Golang и микросервисный подход. Вместо монолитной системы была сформирована архитектура из независимых функциональных компонентов, каждый из которых отвечает за отдельный бизнес-процесс.

Команда GreenCore проработала 7 ключевых направлений разработки:
1. Управление пользователями и контроль доступа
Разработан отдельный контур авторизации с использованием JWT и refresh-токенов. Внедрена ролевая модель RBAC, позволяющая разграничивать права доступа к операциям и пользовательским данным. Предусмотрены механизмы обновления и отзыва токенов.
2. Транзакционное ядро
Реализован сервис обработки платежей и переводов с поддержкой REST и gRPC. Особое внимание уделено корректности финансовых операций: внедрены механизмы идемпотентности, дедупликации и повторной обработки запросов.
Для обмена событиями между сервисами использована Apache Kafka. Это позволило разделить синхронные пользовательские операции и фоновые процессы, снизив взаимную зависимость компонентов.
3. Инфраструктура банковских карт
Создан функциональный модуль управления картами, включая выпуск и обслуживание виртуальных карт. Для взаимодействия с внешними провайдерами разработаны интеграционные адаптеры, обеспечивающие единый формат обмена данными.

4. Работа с большими объёмами данных
Один из наиболее трудоёмких участков проекта — организация хранения и получения истории транзакций.
Объём базы данных превысил 200 млн записей. Для сохранения скорости работы при таком масштабе команда пересмотрела структуру хранения информации, внедрила партиционирование таблиц, денормализацию данных и дополнительные индексы.
Отдельно оптимизированы SQL-запросы и наиболее ресурсоёмкие операции чтения.
5. Антифрод и контроль операций
Разработан механизм выявления подозрительной активности на основе бизнес-правил, лимитов и анализа частоты операций.
Система учитывает параметры транзакций, позволяет настраивать политики проверки для разных клиентских сегментов и формирует уведомления при обнаружении потенциально рискованных сценариев.
6. Коммуникации с пользователями
Создан централизованный сервис уведомлений с поддержкой Push, Email и SMS.
Доставка сообщений организована через Kafka с повторными попытками при ошибках и отслеживанием статусов. Это позволяет не привязывать отправку уведомлений к основному процессу обработки платежа.
7. Интеграционная инфраструктура
Реализовано взаимодействие с банковскими системами и платёжными шлюзами через защищённые REST/gRPC-интерфейсы.
Для каждой интеграции предусмотрены обработка ошибок, контроль времени ожидания ответа и повторные запросы. Дополнительно реализованы механизмы безопасного хранения секретов и защиты каналов передачи данных.
Для финтех-продукта недостаточно просто быстро обрабатывать запросы. Не менее важно гарантировать, что при сетевом сбое, недоступности банка или временной ошибке платёжного шлюза финансовая операция не будет потеряна или выполнена дважды.
Поэтому отдельный блок работ был посвящён отказоустойчивости.
Мы внедрили механизм идемпотентности: повторная отправка одного и того же запроса не приводит к повторному списанию средств или созданию дублирующей транзакции.
Для обработки временных ошибок настроена система повторных попыток с backoff-стратегией. Максимальное окно повторной обработки предусмотрено до 7 суток в соответствии с бизнес-требованиями.
Для распределённых процессов использован паттерн Saga с компенсирующими операциями. Это позволяет корректно обрабатывать ситуации, когда отдельные этапы сложной транзакции завершаются ошибкой.
Дополнительно организованы мониторинг состояния сервисов, централизованное логирование и распределённая трассировка запросов. В результате техническая команда получает возможность отслеживать путь операции между микросервисами и быстрее локализовать причины инцидентов.
Особого внимания потребовала оптимизация PostgreSQL. При работе с базой, содержащей более 200 млн записей, стандартных индексов и запросов оказалось недостаточно для достижения необходимых показателей.
Мы применили комплексный подход:
Партиционирование таблиц для эффективной работы с историческими данными.
Денормализацию отдельных структур для ускорения операций чтения.
Использование покрывающих и частичных индексов.
Профилирование SQL-запросов и оптимизацию сложных JOIN-операций.
Разделение актуальных и архивных данных.

Параллельно была выстроена инфраструктура автоматизированной разработки. Настроен CI/CD-процесс, включающий проверку кода, запуск тестов, сборку контейнеров, сканирование зависимостей и развёртывание сервисов в тестовом окружении.
Это позволило стандартизировать выпуск обновлений и сократить объём ручных операций при тестировании и деплое.
По итогам разработки удалось получить следующие результаты:

Помимо количественных показателей, проект получил ряд важных технологических преимуществ:
Устойчивость финансовых операций. Повторные запросы и временные сбои внешних систем обрабатываются без потери и дублирования транзакций.
Масштабируемость. Независимые микросервисы позволяют развивать отдельные функциональные блоки без необходимости масштабировать всю систему целиком.
Контроль безопасности. Реализованы механизмы авторизации, разграничения доступа, аудита и защиты пользовательских данных.
Гибкость интеграций. Архитектура поддерживает подключение новых банковских систем и платёжных провайдеров.
Управляемость разработки. Автоматизированы сборка, тестирование и развёртывание программных компонентов.
![]()
Максим Яблоков
Разработка финтех-систем требует особого подхода к проектированию: здесь недостаточно обеспечить высокую скорость обработки запросов — необходимо гарантировать корректность каждой операции, предсказуемое поведение системы при сбоях и безопасность данных на всех уровнях.
В этом проекте мы сосредоточились на создании технологического фундамента, который решает не только текущие задачи продукта, но и учитывает перспективы его дальнейшего развития. Сочетание Go, микросервисной архитектуры и событийного взаимодействия позволило добиться трёхкратного ускорения ключевых запросов и выстроить устойчивую систему обработки финансовых операций.
Мы рассматриваем такой подход как основу для развития финтех-продуктов, которым необходимо одновременно работать с большими объёмами данных, внешней банковской инфраструктурой и постоянно растущими требованиями к надёжности.