Номинируйте кейсы на Workspace Digital Awards 2026. Прием заявок до 15 декабря по льготной цене, успейте принять участие!
Brief
Разработка финтех-платформы на Golang с микросервисной архитектурой
Brief
#Поддержка и развитие сайта#Проектирование сайта#Программирование сайта

Разработка финтех-платформы на Golang с микросервисной архитектурой

171 
Brief Россия, Иваново
Поделиться: 0 0 0
Разработка финтех-платформы на Golang с микросервисной архитектурой
Клиент

ООО ВКонтакте

Бюджет

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-протоколам.

1Подготовка и инициирование проекта

Цель: собрать требования, уточнить границы, оценить риски и согласовать план работ.

Ключевые работы:

- Воркшоп с заказчиком и стейкхолдерами: бизнес-цели, сценарии пользователей, non-functional requirements (QPS, RTO/RPO, SLA).

- Сбор нефункциональных требований: нагрузка, время отклика, требования безопасности, соответствие регуляциям.

- Формирование product backlog и приоритизация фич.

- Составление roadmap и оценки (story points, функциональные блоки).

- Артефакты: PRD / BRD, backlog, roadmap, оценка рисков, initial architecture sketch.

- Критерии приёмки: утверждённый PRD и приоритетный список задач для MVP.

2Проектирование архитектуры и DDD-моделирование

Цель: сформировать устойчивую микросервисную архитектуру и доменные границы.

Ключевые работы:

- Выделение bounded contexts (авторизация, транзакции, карты, антифрод, нотификации, отчётность).

- Проектирование API-контрактов (gRPC/REST) — спецификации OpenAPI / protobuf.

- Выбор способов коммуникации: sync (gRPC/REST) vs async (Kafka/RabbitMQ).

- Проектирование схемы данных (ERD), решение о партиционировании, денормализации, индексах.

- Решение по обработке распределённых транзакций (Saga pattern / компенсирующие операции).

- Артефакты: диаграммы C4, OpenAPI/protobuf, ERD, схема партиций, список событий Kafka.

- Критерии приёмки: утверждённые контракты и схемы, согласованные точки интеграции.

3Настройка инфраструктуры разработки и CI/CD

Цель: обеспечить повторяемую сборку, тестирование и деплой.

Ключевые работы:

- Завести репозитории (monorepo vs polyrepo), настройка ветвления (gitflow/maintrunk).

- Контейнеризация сервисов (Docker).

- Настройка GitLab CI/CD пайплайнов: линт, unit-тесты, сборка образов, security-scans, деплой в staging.

- Настройка артефактного реестра (registry), секретного менеджера (Vault/SSM), инфраструктура как код (Terraform/Ansible).

- Артефакты: шаблоны пайплайнов, Dockerfile, Terraform-модули.

- Критерии приёмки: автоматический pipeline, который успешно собирает и деплоит сервисы в staging.

4Базовая реализация core-сервисов (MVP)

Цель: быстро доставить минимально работающий набор сервисов для тестирования интеграций.

Ключевые работы:

- Реализация сервисов: авторизация, сервис транзакций, сервис карт, упрощённый антифрод, нотификации.

- Подключение к PostgreSQL: миграции (migrate), базовые индексы и тестовые данные.

- Организация логирования и основных метрик (request latency, error rate).

- Артефакты: исходники сервисов, миграции БД, Postman/Swagger для тестирования.

- Критерии приёмки: end-to-end сценарий (например, создание карты → перевод → история) успешно проходит в staging.

5Идемпотентность, ретрай и надёжность обработки платежей

Цель: гарантировать корректную обработку операций при сетевых и внешних сбоях.

Ключевые работы:

- Введение idempotency-key для API переводов; логика детекции дублей.

- Реализация ретраев с backoff-стратегией и дедубликацией сообщений (до 7 суток — как бизнес-требование).

- Очереди/событийная обработка через Kafka для гарантированной доставки.

- Механизм компенсирующих транзакций для сценариев Saga.

- Артефакты: спецификация idempotency, схемы обработки retry, тестовые сценарии с симуляцией ошибок.

- Критерии приёмки: при искусственных сбоях внешнего провайдера никакие транзакции не теряются и не дублируются; тесты покрывают retry-процессы.

6Оптимизация работы с PostgreSQL и хранение истории (200M+ записей)

Цель: обеспечить быстрые запросы по истории транзакций при больших объёмах данных.

Ключевые работы:

- Введение партиционирования по времени/шифту (range/partition by).

- Денормализация критичных для чтения таблиц и материализованные представления для отчётности.

- Индексация: покрывающие индексы, частичные индексы, использование BRIN/GIN для JSONB.

- Профилирование запросов (EXPLAIN ANALYZE), рефакторинг «тяжёлых» JOIN’ов, оптимизация N+1.

- Внедрение Archival-процессов для старых данных (cold storage).

- Артефакты: изменения миграций, отчёты профилирования, примеры оптимизированных запросов.

- Критерии приёмки: ключевые отчётные запросы укладываются в SLA (например, сокращение latency в 3 раза).

7Разработка и тонкая настройка антифрод-системы

Цель: снизить вероятность мошеннических операций и минимизировать false-positive.

Ключевые работы:

- Формализация правил: лимиты по суммам, частоте, географии, velocity checks.

- Поток событий в антифрод (streaming через Kafka), реализация скорингового движка (rules → score → decision).

- Настройка алертов и workflow для ручной проверки (case management).

- Построение телеметрии для модели (TP, FP, precision/recall) и итеративная корректировка правил.

- Артефакты: набор правил, интерфейс для управления политиками, dashboard метрик.

- Критерии приёмки: снижение риска мошенничества при допустимом уровне false-positive; кейсы расследований работают корректно.

8Интеграции с внешними платёжными шлюзами и банками

Цель: надёжно подключить внешние эквайринговые системы и провайдеров карт.

Ключевые работы:

- Реализация адаптеров по каждому провайдеру (обработка форматов, timeouts, retry).

- Тестирование контрактов в sandbox-режиме провайдеров.

- TLS, client certificates, и обмен секретами через секретный менеджер.

- Тесты на разные сценарии отклонения (chargeback, network error).

- Артефакты: интеграционные тесты, адаптеры, спецификации провайдеров.

- Критерии приёмки: успешные транзакции с каждым провайдером в тестовом окружении; корректная обработка ошибок.

9Нотификации и коммуникации с пользователем

Цель: гарантировать доставку push/email/SMS и согласованное UX-сообщение о статусах.

Ключевые работы:

- Централизованный нотификационный сервис с очередью сообщений (Kafka) и ретраем.

- Поддержка шаблонов, отказоустойчивость и fallback (если push не прошёл — email).

- Трекинг доставки и аналитика. 

- Артефакты: библиотека шаблонов, delivery reports, монитор доставки. 

- Критерии приёмки: доставка критичных уведомлений согласно SLA.

10Тестирование: unit, integration, contract и нагрузочное тестирование

Цель: обеспечить качество кода и устойчивость системы под нагрузкой.

Ключевые работы:

- Юнит-тесты (Go test, testify), мокирование внешних зависимостей (mockery, gock).

- Contract testing (проверка совместимости API/protobuf).

- Интеграционные тесты в контейнерном окружении (docker-compose/k8s).

- Load и stress-тесты: моделирование пиковых QPS, тесты на долгие ретраи и восстановление после падений. 

- Артефакты: покрытие тестами, отчёты нагрузочного тестирования, тестовые сценарии. 

- Критерии приёмки: прохождение CI тестов + успешные load-тесты в соответствии с NFR.

11Мониторинг, логирование и наблюдаемость

Цель: обеспечить видимость системы и быстрый ответ на инциденты.

Ключевые работы:

- Метрики (Prometheus), дашборды (Grafana) для latency, error rate, consumer lag Kafka.

- Централизованное логирование (ELK/EFK) с трассировкой запросов (OpenTelemetry/Jaeger).

- Alerting (PagerDuty/opsgenie) и playbooks на типичные инциденты. 

- Артефакты: dashboards, alert rules, runbooks. 

- Критерии приёмки: оповещение по ключевым инцидентам и возможность отследить цепочку запроса.

12Безопасность и соответствие (Security & Compliance)

Цель: минимизировать риски утечек и соблюсти нормативы.

Ключевые работы:

- TLS everywhere, шифрование данных в покое и при передаче, ротация ключей.

- Сканирование зависимостей (Snyk/Trivy), статический анализ (gosec).

- Контроль доступа: RBAC, audit-логи, IAM.

- Процедуры PCI / GDPR (если применимо): редуцирование данных, токенизация карт.

13Релиз, миграция и поэтапный rollout

Цель: безопасно перенести систему в продуктив и минимизировать риски.

Ключевые работы:

- План миграции данных, dry-run в staging, rollback-планы.

- Canary / blue-green деплой для минимизации impact.

- Наблюдение за метриками после релиза и оперативный багфикс.

- Артефакты: план релиза, миграционные скрипты, список smoke-tests.

- Критерии приёмки: успешный запуск без деградации ключевых метрик.

14Поддержка, эволюция и оптимизация после запуска

Цель: обеспечить SLA и развивать продукт по реальным данным использования.

Ключевые работы:

- Сбор обратной связи, аналитика использования, приоритизация доработок.

- Оптимизационные спринты (query tuning, cache tuning).

- Поддержка инцидентов, post-mortem’ы, улучшение runbooks.

- Артефакты: backlog доработок, отчёты по инцидентам, roadmap версий.

- Критерии приёмки: стабильные SLA и план дальнейшего развития.

Результат

- Производительность системы увеличена в 3 раза за счёт оптимизации запросов и денормализации.

- Обеспечена устойчивость транзакций даже при сбоях внешних сервисов.

- Внедрена надёжная антифрод-система, предотвращающая финансовые злоупотребления.

- Настроен CI/CD пайплайн, ускоривший релизы и тестирование.

- Платформа успешно выдерживает нагрузку highload-сегмента и обеспечивает стабильность при росте пользователей.

Комментарий агентства

Максим Яблоков
Максим Яблоков

Генеральный директор (CEO)

Проект стал надёжной технологической основой для дальнейшего масштабирования финтех-платформы. Использование Go и микросервисного подхода позволило достичь высокой производительности, гибкости и безопасности системы, а продуманная архитектура упростила интеграцию с новыми банками и платёжными шлюзами.


Стек технологий


Над проектом работали:


Выскажите мнение
Авторизуйтесь, чтобы добавить свой комментарий.
оставить заявку

Хотите заказать похожий проект?

Brief с удовольствием обсудит вашу задачу

Оставить заявку