Интеграционные потоки
Когда использовать direct, async и orchestrated API flow.
Интеграционные потоки
Тип потока выбирается до настройки API. Выбор определяет контракт ответа, внутренний маршрут, правила correlation, timeout, retry и способ информирования потребителя.
Быстрый выбор
| Поток | Использовать, когда | Ответ потребителю |
|---|---|---|
| Direct | Одна целевая операция, нет сложной координации | В рамках исходного вызова либо согласованного sync/reply-механизма |
| Async | Результат не требуется немедленно или обработка длительная | Подтверждение приёма, результат позже через callback |
| Orchestrated | Нужны несколько шагов, ветвление или компенсация | Зависит от контракта: sync или async |
Не выбирайте поток по названию HTTP-метода
GET или POST сами по себе не определяют внутреннюю архитектуру. Решение зависит от бизнес-сценария, допустимой задержки, надёжности целевой системы и необходимости нескольких шагов.
Direct flow
Direct flow используется для одной логически завершённой операции над одной целевой системой.
Подходит, если:
- операция имеет одного основного обработчика;
- не требуется координация нескольких адаптеров;
- правила преобразования локализованы в адаптере;
- timeout и повторная обработка однозначно определены.
Async flow
Async flow отделяет приём запроса от доставки результата. Потребитель получает подтверждение, а финальный результат приходит по зарегистрированному callback-маршруту.
Для async-контракта обязательно согласовать:
- формат подтверждения приёма;
- идентификатор для сопоставления результата;
- callback endpoint и механизм его защиты;
- retry и срок доставки callback;
- поведение после исчерпания повторов.
Orchestrated flow
Orchestrated flow используется для процесса, который объединяет несколько действий или требует явного управления состоянием выполнения.
Подходит, если:
- необходимо вызвать несколько систем;
- следующий шаг зависит от результата предыдущего;
- нужны ветвления, повторные попытки или компенсация;
- жизненный цикл процесса должен быть виден отдельно от отдельного API-вызова.
Что фиксируется при выборе потока
Перед реализацией команда документирует:
- тип потока и обоснование выбора;
- входной и выходной API-контракт;
- целевой topic и message key;
- correlation и trace identifiers;
- timeout на каждом значимом участке;
- retry, DLQ и правила ручного восстановления;
- idempotency requirements;
- владельца API, маршрута и целевой системы.