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