Архитектура и интеграции

Интеграционный контур B2B-заказов и ERP

Контур фиксирует владельцев данных, транзакционные границы и восстановление после неоднозначного ответа ERP.

Архитектурное решение соединяет API, outbox, Kafka, ERP, observability и ручной recovery в проверяемый процесс.

Архитектура и интеграции

Что сделали и как приняли решение

AIFlowPoint
Контур
6 связанных узлов
Delivery
At-least-once
Граница
Order, key и outbox в одной транзакции
Повтор
Идемпотентный side effect
Неясный итог
Сначала reconciliation
Релиз
После проверки критериев приемки

Сначала фиксируем заказ и outbox, потом публикуем событие

Order, idempotency key и outbox сохраняются атомарно. Внешняя доставка допускает повторы, а timeout сначала проходит reconciliation.

  1. 01

    B2B-клиент

    Отправляет заказ со стабильным ключом.

  2. 02

    Order API

    Проверяет tenant scope и принимает команду.

  3. 03

    PostgreSQL + outbox

    Атомарно сохраняет заказ, ключ и событие.

  4. 04

    Kafka

    Доставляет событие минимум один раз.

  5. 05

    ERP adapter

    Сверяет состояние и выполняет side effect.

  6. 06

    Control plane

    Собирает метрики, alerts и recovery.

Для каждого состояния указан владелец

Order API владеет локальным статусом, ERP своей записью, а reconciliation связывает два состояния.

  • Tenant scope проверяется на сервере
  • Correlation ID проходит через весь поток
  • История переходов доступна для аудита

Timeout не приводит к слепому повтору

Adapter проверяет состояние ERP, а метрики, alerts и runbook ведут команду к конкретному recovery-действию.

  • Retry ограничен по попыткам и времени
  • Poison message уходит в управляемый recovery
  • Ручное действие защищено idempotency key

Инварианты контура

Инварианты контура
ИнвариантМеханизмПроверка
Один запрос не создает два заказаIdempotency keyПовтор с тем же ключом
Событие не теряется после commitTransactional outboxСбой publisher после commit
Tenant не видит чужие данныеServer-side scopeCross-tenant negative test
Нет слепого повтора после timeoutReconciliationTimeout после ERP side effect

Критерии приемки

Критерии приемки
ОбластьКритерийПроверка
КонтрактAPI и event schema согласованыКонтрактные тесты
НадежностьOutage проходит без дублейПроверка сценария сбоя
БезопасностьTenant isolation подтвержденаНегативные тесты
ЭксплуатацияAlerts и recovery провереныПроверка инструкции восстановления

Передача команде реализации

Схема стала рабочим контрактом между продуктом, backend, ERP, QA и эксплуатацией.

  • System context, container flow и sequence
  • API/event contracts и data ownership
  • Retry, reconciliation, security и observability
  • Критерии приемки, план выпуска и отката, RACI и остаточные риски