Первый вопрос о SO (правда ???), так что потерпите меня, пожалуйста :)
Мы разрабатываем решение с использованием источников событий. Некоторые из наших бизнес-процессов будут длительными, поэтому мы планируем использовать саги для согласования команд с несколькими совокупными корнями.
Насколько я понимаю, если выданная сагой команда должна завершиться неудачей, сага будет отвечать за выдачу компенсирующих команд всем ранее вызванным совокупным корням.
Какими должны быть действия, если состояние совокупного корня будет изменено извне (то есть каким-то другим процессом / пользователем) после того, как он примет участие в саге, но до того, как сага завершилась неудачей и выдает компенсирующую команду этому совокупному корню?
Другими словами, как можно попытаться компенсировать событие, которое не является последним в потоке событий определенного совокупного корневого (говоря на жаргоне EventStore)?