Все проекты
Эталонная архитектураПодход, по которому мы строим системы, описанный целиком. Не выполненный клиентский проект.

ERP-мост: одно число, с которым согласны три системы

Остатки в ERP, заказы в магазине, движения на складе — и продуманный слой, который решает, кто прав.

Направление
ERP, системы и интеграции
Написано
2026
Стек
  • TypeScript
  • Node.js
  • PostgreSQL
  • Очередь сообщений
  • OpenAPI
Rows of fibre optic patch panels with dense orange cabling.
Содержание проекта

Проблема

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

Интеграция — это в основном не код. Это явное решение о том, какая система отвечает за каждое поле.

Как мы это делаем

1. Карта ответственности

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

2. Мост, а не сетка связей

Каждая система обращается к единому интеграционному сервису с версионированной схемой — вместо шести скриптов «точка-точка», которые понимает только один человек. Входящие события ставятся в очередь и идемпотентны: одно и то же сообщение, пришедшее дважды, не задвоит движение по складу.

3. Видимая сверка

Задание по расписанию сравнивает обе стороны и выводит расхождения списком, с которым может разобраться человек, — вместо того чтобы молча всё перезаписать. Расхождение становится числом, за которым кто-то следит, а не неожиданностью.

4. Миграция с репетицией

Сначала данные переносятся в пробном режиме на копии — с отчётом о различиях и путём отката. Настоящий перенос — это уже третий раз, когда мы это делаем, а не первый.

Что вы получите

  • Карту ответственности по полям, согласованную письменно
  • Интеграционный сервис с документированным API и журналом событий, который можно проиграть заново
  • Отчёты о сверке и оповещения о расхождениях
  • Руководство по миграции, отработанное до переключения

Где начинаются сложности

У устаревших ERP часто нет пригодной ленты изменений, поэтому мосту приходится опрашивать систему и сравнивать данные — из-за этого задание по сверке становится постоянной частью системы, а не временным костылём. Большинство «очевидных» расхождений на самом деле кроются в правилах округления налогов и пересчёта единиц измерения. А каждое пользовательское поле, добавленное второпях, — это ещё не принятое решение по миграции.

Типовая архитектура

Три системы общаются через один мост, расхождения — в отчётеERP · остаткимагазин · заказысклад · движениямостверсии схемысверкаотчёт о расхождениях
Шаблон, на основе которого мы строим, а не собственный дизайн этого проекта. Данные и системы клиента здесь не показаны.

Далее

Офлайн-ориентированное приложение для тех, кто работает в подвалах

Читать

Есть похожая задача?

Расскажите, как устроена ваша система. Мы скажем, что из этого подходит, а что нет.