Когда я сохраняю свои данные в базе кода CQRS без использования источников - PullRequest
0 голосов
/ 24 сентября 2019

Я занимаюсь разработкой архитектуры на C # на основе модели CQRS.В примерах, с которыми я сталкиваюсь, я пытаюсь понять, когда нужно сохранять свои данные.

В некоторых примерах, в том числе в собственном примере товаров / корзины Microsoft, они добавляют свои товары для сохранения в шине.или любой другой механизм, который они используют для передачи данных за пределы команды.

И в других примерах команда содержит постоянство, часто заявляя, что, если попытка сохранения не удалась, каждый из них «повторно запускает» командуи попытайтесь сохранить снова.Хотя этот аргумент имеет свои достоинства, не ограничивает ли это количество «транзакционных» действий, которые могут произойти?

1 Ответ

1 голос
/ 28 сентября 2019

В проекте, над которым я работал, мы сохраняем команды и события, как только они обрабатываются в CommandHandler или EventHandler.Кроме того, команды и события содержали модель чтения, например, в ненормализованном виде (в формате JSON / AVRO), который обновлялся новыми сведениями сразу после обработки новой команды / события.В конце процесса конечное событие содержит модель полного чтения.Другим важным аспектом работы таким образом является то, что вы можете повторить обработку определенной команды / события на основе предыдущих команд / событий, которые были успешно обработаны.

...