Преимущества моментальных снимков Ncqrs?

При подготовке дизайна будущего приложения я начал некоторые исследования приложений в стиле CQRS и особенно Ncqrs.

Хотя большинство концепций вполне понятны, меня немного смущает концепция моментального снимка.

Я понимаю, почему перестроение объекта из его событий может быть очень ресурсоемким, но поскольку денормализатор построит модель чтения с последним состоянием объекта (или фактически последними значениями, необходимыми для представления), зачем беспокоиться об этой концепции? восстановления объекта из снимков?

Правильно ли я думаю, что такие сценарии возникают спорадически и по запросу, в основном после обновления версии или отладки?

Если нет, то в каких ситуациях можно сделать снимок?


person Steve B    schedule 30.07.2011    source источник


Ответы (2)


Должен признать, что я не большой пользователь источников событий (или, по крайней мере, я не использую их в полной мере), но моментальные снимки помогают повысить производительность вашей системы при перестроении агрегата. Вместо того, чтобы перестраивать все события с момента времени 0, вам нужно только перестроить обратно до последнего моментального снимка. Таким образом, если в вашей системе происходит большое количество событий, а перестройка вашего агрегата источником событий начинает влиять на производительность вашей командной стороны, вы можете рассмотреть возможность использования моментальных снимков.

Ознакомьтесь с заметками Грега Янга. класс DDD/CQRS, который он вел в прошлом году или около того; это может дать вам некоторое представление о том, откуда он взялся в отношении моментальных снимков.

Надеюсь это поможет. Удачи!

person David Hoerster    schedule 31.07.2011
comment
Вы имеете в виду, что совокупный корень перестраивается каждый раз, когда на нем выдается команда? если да, это то, что я пропустил в шаблоне cqrs/ddd (только начал их изучать) - person Steve B; 31.07.2011
comment
Это источник событий, который некоторые фреймворки (например, ncqrs) добавляют бесплатно. Так что, если вы смотрите на чистые cqrs и ddd, источник событий в дополнение к этому. Я работаю с этим чуть меньше года, и мне еще многое предстоит узнать. :) - person David Hoerster; 01.08.2011
comment
Я чувствую, что преимущества таких фреймворков легко оправдывают объем работы по изучению того, как они работают. Благодарность - person Steve B; 01.08.2011
comment
Без проблем. Надеюсь это поможет. Удачи в работе с CQRS! - person David Hoerster; 01.08.2011

Моментальные снимки полезны, когда ваши общие корни имеют большое количество событий (возможно, более 1000?). Но следует учитывать, что в большинстве сценариев ваша совокупность недолговечна и, следовательно, имеет небольшое количество событий; в этом случае снимки можно рассматривать как раннюю оптимизацию; что не обязательно хорошо.

person Chris Moutray    schedule 01.08.2011