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