Я хочу использовать шаблон SAGA в своих микросервисах Spring Boot. Например, в порядке клиента, когда заказ создан, создается событие типа OrderCreatedEvent
, а затем в микросервисе клиента слушатель на OrderCreatedEvent
Обновляет кредит клиента и производит CreditUpdateEvent
и ....
Я использую сеанс с транзакциями JmsTemplate
для создания событий. В javadoc _ 5_ сообщил, что транзакция JMS совершена после основной транзакции:
Это приводит к тому, что локальная транзакция JMS управляется вместе с основной транзакцией (которая может быть собственной транзакцией JDBC), а транзакция JMS фиксируется сразу после основной транзакции.
Теперь у меня вопрос, как я могу справиться со сценарием ниже:
Основная транзакция зафиксирована (например, заказ подтвержден), и система не смогла зафиксировать транзакцию JMS (по любой причине).
Я хочу использовать SAGA вместо двухэтапной фиксации, но я думаю, что просто SAGA переместит проблему с заказа и обслуживания клиентов на службу заказа и поставщика JMS.