ru

Как это работает?

Нужна помощь для бизнеса?

Свяжитесь с нами, чтобы получить персональное предложение по FinMV, адаптированное к вашим потребностям.

Модульность по умолчанию. Сервисы — когда оправданно.

Об архитектуре обычно спорят как о вкусе: монолит против микросервисов, причём одна сторона объявляется очевидно правильной. Такая постановка вопроса стоит денег. Полезный вопрос не в том, чей стиль побеждает, а в том, какая структура сохраняет границы доменов при вашем реальном масштабе.

Начинайте с простейшей архитектуры, сохраняющей границы

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

Поэтому по умолчанию реализация модульная: онбординг, офферы, инвестиции, платежи, документы, обслуживание и отчётность живут за явными границами внутри одной разворачиваемой системы. Модульной её делает не структура папок, а то, что у каждого модуля есть контракт, свои данные и собственные тесты.

Сервис выделяется тогда, когда для этого есть причина

Модуль становится отдельным сервисом при конкретном основании, и основания эти бизнесовые, а не модные:

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

Поскольку границы и контракты уже есть, выделение сервиса — плановая операция, а не переписывание. В этом и смысл: возможность остаётся открытой и остаётся дешёвой.

Асинхронность там, где она себя оправдывает

Работа, которая не должна блокировать пользователя — сверка расчётов, генерация документов, колбэки провайдеров, отчётность, — идёт через очереди. Брокеры сообщений вроде RabbitMQ или Kafka появляются тогда, когда это оправдано нагрузкой или топологией интеграций, а не по умолчанию. PostgreSQL остаётся системой записи; Redis используется там, где действительно нужны быстрый кеш или координация.

Чего мы не делаем

Мы не продаём монолит и не продаём микросервисы. И то и другое — ответы на вопросы, которые ещё не заданы. Мы также не строим распределённую систему ради солидного вида: архитектурный театр дорого эксплуатировать и тяжело передавать.

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