Я прочитал несколько статей о архитектуре микросервисов, но никто не принимает тему транзакции. Все, что они говорят, что это трудно сделать. Может быть, кто-то может описать, как с этим справиться?Сделки в микросервисах
Но не со стороны домена, а с технологической стороны. Допустим, что у нас есть бизнес-пример, когда нам нужно вызвать две разные службы, и оба они вносят некоторые изменения в базу данных. Но как откат, если какая-то ошибка возникает во второй?
Кто знает некоторые библиотеки или проект для этой проблемы?
Что значит:> вам следует создать службу более высокого уровня – KirkoR
Я имею в виду, что у вас должна быть другая служба, которая инициализирует глобальную транзакцию и будет вызовите другие службы, используя эту транзакцию, для фиксации/откат в зависимости от результата всех ваших вызовов. Я не знаю, как этот результат может быть достигнут точно, это зависит от технологий, которые вы используете. Я думаю, что эта статья может предоставить некоторую полезную информацию (http://docs.oracle.com/cd/E17904_01/web.1111/e13734/transaction.htm). Anway, как было сказано ранее, это действительно сложный контекст и будет намного лучше использовать индивидуальную транзакцию для каждой службы. – davmcpaul
Здесь вы можете найти полезный реальный реальный пример того, как к вашей проблеме можно подойти: http://www.eaipatterns.com/ramblings/18_starbucks.html – davmcpaul