Я начал планировать свой первый проект CQRS с источником событий, и из-за нехватки времени часть модели останется в файлах XML. Что я понимаю из DDD, так это то, что каждое обновление выполняется для агрегатного корня, и если я хочу изменить другой агрегатный корень из первого (событие вызывается в домене), то сначала выполняется команда для изменения второго агрегата. Каждое изменение имеет собственную транзакционную границу.
Теперь, что меня беспокоит, если я зафиксировал изменение в первом агрегате (в базе данных), как мне справиться с ситуацией, когда происходит сбой второго агрегата (запись в файл в этом случае)?
Я мог бы выдать команду, чтобы сначала обновить файл первым (второй агрегат), а затем выдать команду, чтобы изменить первый агрегат, но еще раз у меня может произойти сбой второй команды, но в этом случае у нас есть две отдельные команды, которые кажутся идти вразрез с идеей событий, возникающих в домене, которые обрабатываются как в первом случае.
Полагаю, даже если я не использовал файл и все изменения были записаны в базу данных, существует вероятность того, что второе совокупное изменение может завершиться неудачей. Правильно ли я так думаю?
Все еще пытаюсь понять концепции в моей голове, чтобы любая помощь была оценена.