Каковы преимущества хранения команд в системе CQRS/ES?

Я работаю над системой хранения CQRS/событий. На данный момент шаблон, который я использую, заключается в том, чтобы команды были синхронными. То есть пользовательский интерфейс не показывает операцию как выполненную до тех пор, пока команда не будет завершена, и пользователю будет показано успешное/неудачное выполнение. Во время выполнения команд все сгенерированные события (, например, действие X, произошедшее с корнем агрегата Y), сохраняются в долговременном хранилище.

Все описания CQRS, которые я прочитал, реализуют хранение команд. Меня интересует, нужно ли это в моей ситуации.

Еще одно замечание -существует много длительных действий командного типа, поэтому я разбил операции на команду, которая генерирует события, а события, в свою очередь, выдают больше команд. Команды являются идемпотентными в зависимости от состояния совокупного корня. Я не знаю, как это повлияет на ответ, но стоит отметить.

Спасибо, Эрик

6
задан Erick T 18 April 2012 в 15:32
поделиться