Логотип Студии Ивана Удачника Автоматизация, которая окупается
статьи - «Как автоматизировать обработку данных между системами»

Как автоматизировать обработку данных между системами

Архитектура обмена данными между системами: источник правды, синхронный запрос, события, очередь, пакетная загрузка, повторы, сверки и обработка сбоев

Как автоматизировать обработку данных между системами
короткий ответ

Какая система отвечает за исходные данные

Клиент, заказ или платёж могут одновременно отображаться в нескольких системах. Для каждого факта нужно договориться об основном источнике - «источнике правды» - и правах на изменение. Иначе две системы будут исправлять друг друга, а сотруднику придётся решать, какой версии верить. Таблица ниже показывает, как можно распределить эти роли

ФактИсточник правдыКуда передаётсяКто имеет право менять
Контакт клиентасистема управления клиентамирассылки, поддержка, отчётностьпродажи и клиент
Движение денег / привязка оплаты к заказубанк / учётная система соответственнозаказ, отчётностьуполномоченные системы и сотрудники финансовой службы
Остаток товараскладской учётсайт, продажисклад

Таблицу можно прокрутить вбок →

Источник определяют для конкретного факта, а не для всего объекта сразу. Например, банк подтверждает движение денег, а учётная система связывает оплату с заказом. Это разные сведения: формулировка «банк или учёт» без такого разделения оставляет конфликт версий нерешённым

Четыре механизма обмена, которые можно сочетать

Для проектирования в этой статье удобно разделить обмен на четыре базовых механизма: синхронный запрос, событие, очередь и пакетную передачу. Это рабочая архитектурная группировка; конкретные возможности зависят от используемых систем.

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

СпособКак работаетПодходитГлавный риск
Синхронный запросодна система запрашивает другую и ждёт ответкогда ответ нужен прямо сейчасзависимость от доступности второй системы
Событиесистема сообщает, что что-то произошлостатусы, изменения заказа, уведомленияповторная доставка и порядок событий
Очередьсообщение сохраняется до обработки по правилам выбранной очередимассовые операции и нестабильные получателинакопление сообщений, истечение срока хранения, ошибки подтверждения обработки
Пакет по расписаниюизменения передаются раз в периодотчётность и некритичная свежестьустаревшие данные между загрузками

Таблицу можно прокрутить вбок →

Выбирайте сочетание по допустимой задержке, объёму, цене потери и требованиям к согласованности. Для каждого маршрута отдельно зафиксируйте, достаточно ли подтверждения приёма сообщения или нужен уже выполненный результат

Надёжность строится вокруг повторов и сбоев

Проектируйте обмен с учётом повторной доставки и частичных сбоев. В рекомендациях AWS по асинхронному взаимодействию разобраны идемпотентная обработка, очереди ошибок, повторы, порядок сообщений и наблюдаемость[1]. Приём сообщения не равен выполнению операции: это должны различать и система, и сотрудник, который смотрит её статус

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

Как выбрать архитектуру без лишней сложности

Пять вопросов перед разработкой

  1. какую задержку допустит бизнес: секунды, минуты, часы
  2. что хуже: временно устаревшее значение или недоступность всего процесса
  3. можно ли безопасно повторить операцию
  4. нужен ли строгий порядок событий
  5. как сотрудник узнает, что обмен сломан

Для ежедневного отчёта может хватить пакетной загрузки. Для оплаты, после которой разрешается отгрузка, нужны подтверждённый статус, допустимая задержка и защита от повторного действия. Событие с очередью - один из вариантов; сам выбор этого механизма ещё не делает маршрут надёжным

Что должно быть видно в контроле обмена

МетрикаЧто показывает
Успешные обработкикакая доля сообщений дошла до результата
Повторыкак часто система восстанавливается после временных ошибок
Очередь ошибоксколько элементов требуют человека
Возраст самого старого сообщенияесть ли накопившийся хвост
Сверка итоговсовпали ли записи, суммы и количества за одинаковый период; одни общие итоги могут скрыть взаимно компенсирующиеся ошибки

Таблицу можно прокрутить вбок →

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

Источники и границы выводов

Три таблицы и вопросы выбора - авторская схема разбора интеграции. Возможности и гарантии конкретного сервиса обмена нужно сверять с его документацией и настройками

  1. AWS Prescriptive Guidance: Asynchronous communication - официальная документация по асинхронному взаимодействию. Поддерживает рекомендации по подтверждению приёма, обработке дублей, повторным попыткам, очередям ошибок и наблюдаемости; не является гарантией надёжности конкретной интеграции

Хотите, чтобы данные собирались без ручного труда?

Разберём ваши источники и отчёты, спроектируем цепочку обработки и покажем первый автоматический контур на ваших данных

Разобрать наш процесс Сначала проверим экономику процесса, а уже потом можно обсуждать внедрение

Частые вопросы

Какой способ обмена данными самый надёжный?

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

Что такое источник правды?

Основной источник конкретного факта, чья версия считается определяющей для других систем. Отдельно задают, кто и по каким правилам может этот факт менять

Зачем нужна сверка, если обмен работает автоматически?

Автоматическая доставка тоже может давать пропуски, дубли и частичные сбои. Сверка отвечает на бизнес-вопрос: сошёлся ли результат целиком