Mulesoft как откатить остальные api call - PullRequest
0 голосов
/ 30 марта 2020

У меня есть поток мулов, скажем, поток X, он вызывает внешний API отдыха (API 1) для создания пользователя в системе B, передавая полезную нагрузку из системы A. После создания пользователя в системе B требуется вставить идентификатор пользователя из системы B вместе с идентификатором пользователя из системы A (присутствует в json полезных данных) в таблицу базы данных корреляции. Как я могу выполнить эти два действия atomi c, чтобы у таблицы корреляции была запись корреляции при создании пользователя в системе B. У нас есть API-интерфейс Rest, который может принимать исходные и целевые системные идентификаторы пользователя и вставлять в таблицу корреляции.

Я не думаю, что мы можем использовать транзакцию XA при работе с двумя распределенными системами.

мы не можем использовать один атрибут полезной нагрузки или комбинацию атрибутов, чтобы проверить, был ли пользователь уже создан в системе B. именно поэтому у нас есть таблица корреляции для корреляции пользователей между двумя системами. Мне нужен шаблон, который будет гарантировать, что таблица корреляции будет вставлена, когда пользователь будет создан в системе B.

Я читал о саговом паттерне и компенсационной транзакции, но не знаю, как реализовать его в муле.

1 Ответ

0 голосов
/ 30 марта 2020

Я не верю, что REST API имеет откат. Но определение этого. Это Безгражданство .

Вы должны предоставить способ повторить работу (псевдо-транзакцию) на каждом уровне вызовов API и выполнить этот откат «вручную».

...