Что самое сложное в интеграциях?

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

2. Надежность и идемпонентность Что делать если запрос прошел, а ответ не получен? Сработает ли повторная отправка? А нужна ли защита от дублей?

3. Недостаточность документации Пока не встречались сценарии где можно было бы положиться исключительно на документацию. Даже если документация хорошая, остается проблема, что ее еще нужно правильно понять

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

Но вот основная сложность в интеграциях - найти ключевой сценарий

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

Давайте попробуем представить, что нам нужна интеграция Бухгалтерии и CRM. Сразу появляются вопросы:

  • Нужно синхронизировать всех контрагентов и их договоры?
  • Потребуется еще и номенклатуру выгружать?
  • А контактные данные нужно отправлять?
  • А возвраты и корректировки?
  • А что с НДС?

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

Поэтому важно начать совсем с другого вопроса: А что конкретно должен получить пользователь от этой интеграции?

Например: Менеджер в CRM создает счет и хочет увидеть когда клиент его оплатит

И вот это уже сценарий. И все требования начинают появляться из него. 1. Контрагент нужен, чтобы бухгалтерия поняла кому выставляется счет. Но контактные данные и заметки о клиенте уже не нужны. Договор может вообще не потребуется

2. Номенклатура - необязательно. В счете можно передать только описание позиции

3. Сумма и скидки - влияют на расчеты и нужны. А вот НДС - уже вотчина бухгалтерии

И тогда интеграция становится намного понятнее. И под нее уже можно подстроить нужную техническую часть.

То есть порядок такой: 1. Прорабатываем сценарий 2. Строим бизнес-правила 3. Размечаем данные 4. И только потом API, очереди, webhooks, идемпотентность и прочая техническая часть

Мне кажется, именно в сценарии и находится самая сложная и интересная часть интеграций. То есть не в том, как передать данные из системы А в систему Б, а в том, какие данные действительно должны пройти этот путь и зачем