Микросервисы — хореография сагиJAVA

Программисты JAVA общаются здесь
Anonymous
Микросервисы — хореография саги

Сообщение Anonymous »

Я знаю, как поддерживать согласованность в системе архитектуры микросервисов, используя хореографию для управления транзакциями.
Возьмем эту простую архитектуру:
Изображение

Для операций №1 и №2 я могу использовать Шаблон исходящих, чтобы гарантировать, что изменения в базе данных приведут к публикации сообщения в очереди.
Или просто Одноэтапная фиксация, когда я вставляю транзакцию базы данных в границы транзакции обмена сообщениями:
  • Начать транзакцию обмена сообщениями
  • Начать транзакцию базы данных
    < li>Получить сообщение
  • Обновить базу данных
  • Подтвердить транзакцию базы данных
  • Подтвердить транзакцию обмена сообщениями
А как насчет операций №3, №4 и №5, где мне нужно:
  • прочитать сообщение
  • записать в базу данных
  • отправить ответное сообщение в другую очередь
Что я могу сделать, чтобы после подтверждения транзакции БД я также отправлял сообщение в очередь ответов? Я хочу избежать возможности того, что транзакция БД в PaymentsDB будет успешной, но в очередь ответов не будет отправлено сообщение.

Подробнее здесь: https://stackoverflow.com/questions/790 ... oreography

Вернуться в «JAVA»