📦 Batch-интеграции: что делать, если обработалась только часть данных? 📦
Batch-интеграция (пакетная интеграция) — это взаимодействие систем, при котором несколько элементов передаются и обрабатываются одним пакетом, а не отдельными обращениями для каждого элемента. Например, через API или файл.
Пакетная обработка может запускаться ночью по расписанию. Пользователь тоже может запустить её кнопкой «Загрузить».
👉 Когда это актуально?
🔹 Передаём из ERP в интернет-магазин новые цены для 100 товаров.
🔹 Загружаем в CRM список на 50000 контактов из внешней системы.
🔹 Отправляем из системы продаж в бухгалтерскую систему пакет на 100 документов.
Во всех этих случаях недостаточно описать только состав передаваемых данных и ответ «успешно / ошибка».
Главная проблема:
❗️ А если часть элементов обработалась, а часть — нет?
Представьте: передали новые цены для 100 товаров.
▫️ Для 95 товаров цены обновились.
▫️ Для 3 — нет: товары с такими идентификаторами не найдены.
▫️ Ещё 2 не удалось обработать из-за временной недоступности сервиса.
Весь пакет нельзя назвать ни полностью успешным, ни полностью неуспешным.
⁉️ И дальше возникают вопросы:
• Какие цены уже изменились?
• Что нужно исправить?
• Какие элементы можно отправить повторно?
👉 Что системному аналитику нужно зафиксировать в требованиях к Batch-интеграции
1️⃣ Модель обработки
✔️ Либо пакет атомарный: применяются все изменения или ни одного.
✔️ Либо допускается частичный успех: ошибка одного элемента не мешает обработке остальных.
2️⃣ Результат на двух уровнях
Нужен статус всего пакета и результат обработки каждого элемента с его идентификатором.
Общий статус «Пакет принят» ещё не означает, что все объекты данных из него обработаны.
3️⃣ Правила обработки ошибок
В нашем примере для 3 товаров нужно проверить идентификаторы и исправить ошибку вручную.
Для 2 временных ошибок с недоступностью — предусмотреть повторную попытку обработки.
Один сценарий «повторить при любой ошибке» здесь не подходит.
4️⃣ Безопасную повторную обработку
Какие элементы можно отправить на повторную обработку?
Кто запускает повтор?
Сколько попыток допускаем?
Как не выполнить уже успешную операцию ещё раз?
❗️ Если ответ потерялся по тайм-ауту, это ещё не значит, что операция не выполнена. Нужно предусмотреть проверку результата и защиту от дублей.
5️⃣ Получение итогового результата
Где система или пользователь увидит итоги: сколько элементов обработано, какие завершились ошибкой и что делать дальше?
👉📚 Собрала для вас все эти пункты в удобный чек-лист по работе с Batch-интеграциями.
Прикреплён к посту.
Сохраняйте и сверяйтесь с ним при проектировании сложных пакетных интеграций. Супер-полезно для задач на синхронизацию большого объема данных 🤝
#ИнтеграцииGA
📱 Tg | 💙 ВК | 💬 Max
Post #3719
1.3K










- ❤ 14
- 👍 3
- 👀 1