ООО ВКонтакте
11 000 000
Финансы, страхование, инвестиции
Россия, Санкт-Петербург
Сентябрь 2025
Клиент — компания из финтех-сектора, развивающая мобильное приложение для управления банковскими картами, платежами и переводами.
Основная цель проекта — создать масштабируемую и безопасную платформу, которая обеспечит:
- обработку миллионов транзакций с высокой скоростью и отказоустойчивостью;
- безопасную работу с пользовательскими данными;
- интеграцию с внешними банковскими системами и платёжными шлюзами;
- централизованную отчётность и антифрод-защиту.
Наша команда с 12+ летним опытом коммерческой разработки на Go спроектировала и реализовала микросервисную архитектуру, включающую ключевые функциональные модули:
1. Авторизация и управление пользователями
- Реализованы JWT и refresh-токены;
- Настроено ролевое разграничение доступа (RBAC);
- Встроена система обновления и отзыва токенов.
2. Обработка платежей и переводов
- Реализован API на REST/gRPC;
- Внедрена идемпотентность операций и система ретраев до 7 суток для устойчивости при - сбоях;
- Использована Kafka для гарантированной доставки сообщений.
3. Система карт
- Поддержка выпуска и управления виртуальными картами;
- Интеграции с внешними провайдерами по REST/gRPC.
4. История транзакций и отчётность
- Оптимизирована работа с базой данных (200+ млн записей);
- Реализована денормализация данных и партиционирование таблиц;
- Время отклика запросов снижено в 3 раза за счёт оптимизации SQL и индексов.
5. Система уведомлений
- Push, Email и SMS-уведомления через Kafka;
- Настроена гарантия доставки и повторные попытки при сбоях.
6. Модуль антифрода
- Реализованы бизнес-правила и лимиты на операции;
- Настроена система алертов при подозрительной активности;
- Поддержка гибкой настройки политик в зависимости от сегмента клиентов.
7. Интеграции с внешними платёжными шлюзами
- Реализовано подключение к банкам и эквайринговым системам по защищённым REST/gRPC-протоколам.
Цель: собрать требования, уточнить границы, оценить риски и согласовать план работ.
Ключевые работы:
- Воркшоп с заказчиком и стейкхолдерами: бизнес-цели, сценарии пользователей, non-functional requirements (QPS, RTO/RPO, SLA).
- Сбор нефункциональных требований: нагрузка, время отклика, требования безопасности, соответствие регуляциям.
- Формирование product backlog и приоритизация фич.
- Составление roadmap и оценки (story points, функциональные блоки).
- Артефакты: PRD / BRD, backlog, roadmap, оценка рисков, initial architecture sketch.
- Критерии приёмки: утверждённый PRD и приоритетный список задач для MVP.
Цель: сформировать устойчивую микросервисную архитектуру и доменные границы.
Ключевые работы:
- Выделение bounded contexts (авторизация, транзакции, карты, антифрод, нотификации, отчётность).
- Проектирование API-контрактов (gRPC/REST) — спецификации OpenAPI / protobuf.
- Выбор способов коммуникации: sync (gRPC/REST) vs async (Kafka/RabbitMQ).
- Проектирование схемы данных (ERD), решение о партиционировании, денормализации, индексах.
- Решение по обработке распределённых транзакций (Saga pattern / компенсирующие операции).
- Артефакты: диаграммы C4, OpenAPI/protobuf, ERD, схема партиций, список событий Kafka.
- Критерии приёмки: утверждённые контракты и схемы, согласованные точки интеграции.
Цель: обеспечить повторяемую сборку, тестирование и деплой.
Ключевые работы:
- Завести репозитории (monorepo vs polyrepo), настройка ветвления (gitflow/maintrunk).
- Контейнеризация сервисов (Docker).
- Настройка GitLab CI/CD пайплайнов: линт, unit-тесты, сборка образов, security-scans, деплой в staging.
- Настройка артефактного реестра (registry), секретного менеджера (Vault/SSM), инфраструктура как код (Terraform/Ansible).
- Артефакты: шаблоны пайплайнов, Dockerfile, Terraform-модули.
- Критерии приёмки: автоматический pipeline, который успешно собирает и деплоит сервисы в staging.
Цель: быстро доставить минимально работающий набор сервисов для тестирования интеграций.
Ключевые работы:
- Реализация сервисов: авторизация, сервис транзакций, сервис карт, упрощённый антифрод, нотификации.
- Подключение к PostgreSQL: миграции (migrate), базовые индексы и тестовые данные.
- Организация логирования и основных метрик (request latency, error rate).
- Артефакты: исходники сервисов, миграции БД, Postman/Swagger для тестирования.
- Критерии приёмки: end-to-end сценарий (например, создание карты → перевод → история) успешно проходит в staging.
Цель: гарантировать корректную обработку операций при сетевых и внешних сбоях.
Ключевые работы:
- Введение idempotency-key для API переводов; логика детекции дублей.
- Реализация ретраев с backoff-стратегией и дедубликацией сообщений (до 7 суток — как бизнес-требование).
- Очереди/событийная обработка через Kafka для гарантированной доставки.
- Механизм компенсирующих транзакций для сценариев Saga.
- Артефакты: спецификация idempotency, схемы обработки retry, тестовые сценарии с симуляцией ошибок.
- Критерии приёмки: при искусственных сбоях внешнего провайдера никакие транзакции не теряются и не дублируются; тесты покрывают retry-процессы.
Цель: обеспечить быстрые запросы по истории транзакций при больших объёмах данных.
Ключевые работы:
- Введение партиционирования по времени/шифту (range/partition by).
- Денормализация критичных для чтения таблиц и материализованные представления для отчётности.
- Индексация: покрывающие индексы, частичные индексы, использование BRIN/GIN для JSONB.
- Профилирование запросов (EXPLAIN ANALYZE), рефакторинг «тяжёлых» JOIN’ов, оптимизация N+1.
- Внедрение Archival-процессов для старых данных (cold storage).
- Артефакты: изменения миграций, отчёты профилирования, примеры оптимизированных запросов.
- Критерии приёмки: ключевые отчётные запросы укладываются в SLA (например, сокращение latency в 3 раза).
Цель: снизить вероятность мошеннических операций и минимизировать false-positive.
Ключевые работы:
- Формализация правил: лимиты по суммам, частоте, географии, velocity checks.
- Поток событий в антифрод (streaming через Kafka), реализация скорингового движка (rules → score → decision).
- Настройка алертов и workflow для ручной проверки (case management).
- Построение телеметрии для модели (TP, FP, precision/recall) и итеративная корректировка правил.
- Артефакты: набор правил, интерфейс для управления политиками, dashboard метрик.
- Критерии приёмки: снижение риска мошенничества при допустимом уровне false-positive; кейсы расследований работают корректно.
Цель: надёжно подключить внешние эквайринговые системы и провайдеров карт.
Ключевые работы:
- Реализация адаптеров по каждому провайдеру (обработка форматов, timeouts, retry).
- Тестирование контрактов в sandbox-режиме провайдеров.
- TLS, client certificates, и обмен секретами через секретный менеджер.
- Тесты на разные сценарии отклонения (chargeback, network error).
- Артефакты: интеграционные тесты, адаптеры, спецификации провайдеров.
- Критерии приёмки: успешные транзакции с каждым провайдером в тестовом окружении; корректная обработка ошибок.
Цель: гарантировать доставку push/email/SMS и согласованное UX-сообщение о статусах.
Ключевые работы:
- Централизованный нотификационный сервис с очередью сообщений (Kafka) и ретраем.
- Поддержка шаблонов, отказоустойчивость и fallback (если push не прошёл — email).
- Трекинг доставки и аналитика.
- Артефакты: библиотека шаблонов, delivery reports, монитор доставки.
- Критерии приёмки: доставка критичных уведомлений согласно SLA.
Цель: обеспечить качество кода и устойчивость системы под нагрузкой.
Ключевые работы:
- Юнит-тесты (Go test, testify), мокирование внешних зависимостей (mockery, gock).
- Contract testing (проверка совместимости API/protobuf).
- Интеграционные тесты в контейнерном окружении (docker-compose/k8s).
- Load и stress-тесты: моделирование пиковых QPS, тесты на долгие ретраи и восстановление после падений.
- Артефакты: покрытие тестами, отчёты нагрузочного тестирования, тестовые сценарии.
- Критерии приёмки: прохождение CI тестов + успешные load-тесты в соответствии с NFR.
Цель: обеспечить видимость системы и быстрый ответ на инциденты.
Ключевые работы:
- Метрики (Prometheus), дашборды (Grafana) для latency, error rate, consumer lag Kafka.
- Централизованное логирование (ELK/EFK) с трассировкой запросов (OpenTelemetry/Jaeger).
- Alerting (PagerDuty/opsgenie) и playbooks на типичные инциденты.
- Артефакты: dashboards, alert rules, runbooks.
- Критерии приёмки: оповещение по ключевым инцидентам и возможность отследить цепочку запроса.
Цель: минимизировать риски утечек и соблюсти нормативы.
Ключевые работы:
- TLS everywhere, шифрование данных в покое и при передаче, ротация ключей.
- Сканирование зависимостей (Snyk/Trivy), статический анализ (gosec).
- Контроль доступа: RBAC, audit-логи, IAM.
- Процедуры PCI / GDPR (если применимо): редуцирование данных, токенизация карт.
Цель: безопасно перенести систему в продуктив и минимизировать риски.
Ключевые работы:
- План миграции данных, dry-run в staging, rollback-планы.
- Canary / blue-green деплой для минимизации impact.
- Наблюдение за метриками после релиза и оперативный багфикс.
- Артефакты: план релиза, миграционные скрипты, список smoke-tests.
- Критерии приёмки: успешный запуск без деградации ключевых метрик.
Цель: обеспечить SLA и развивать продукт по реальным данным использования.
Ключевые работы:
- Сбор обратной связи, аналитика использования, приоритизация доработок.
- Оптимизационные спринты (query tuning, cache tuning).
- Поддержка инцидентов, post-mortem’ы, улучшение runbooks.
- Артефакты: backlog доработок, отчёты по инцидентам, roadmap версий.
- Критерии приёмки: стабильные SLA и план дальнейшего развития.


- Производительность системы увеличена в 3 раза за счёт оптимизации запросов и денормализации.
- Обеспечена устойчивость транзакций даже при сбоях внешних сервисов.
- Внедрена надёжная антифрод-система, предотвращающая финансовые злоупотребления.
- Настроен CI/CD пайплайн, ускоривший релизы и тестирование.
- Платформа успешно выдерживает нагрузку highload-сегмента и обеспечивает стабильность при росте пользователей.
![]()
Максим Яблоков
Генеральный директор (CEO)
Проект стал надёжной технологической основой для дальнейшего масштабирования финтех-платформы. Использование Go и микросервисного подхода позволило достичь высокой производительности, гибкости и безопасности системы, а продуманная архитектура упростила интеграцию с новыми банками и платёжными шлюзами.
Go (Golang)
Python
Ruby
FastAPI
ASP.NET Core
Nest
PostgreSQL
Redis
Docker
Unity
Node.js
Яндекс Метрика
CoMagic
Максим Яблоков
Подписаться
Артём Пестов
Подписаться
Майя Долотова
Подписаться
Павел Чувикин
Подписаться