Event Sourcing и словарь объектов - PullRequest
3 голосов
/ 23 ноября 2010

Как источник событий можно комбинировать с несколькими типами объектов словаря, такими как Country, Region, Time Zone и т. Д., И типами словаря из конкретной модели предметной области, такими как Budget или Availability определенияНекоторые объекты словаря должны быть доступны для редактирования в интерфейсе администратора, а некоторые нет.

Например, мы решили, что нам не нужен административный интерфейс для стран.Таким образом, нам не нужно реализовывать команды AddCountry / RemoveCountry.

Должен ли я генерировать набор событий CountryAdded, т.е. сохранять объекты словаря как поток событий? Используем ли мы когда-либо источник истины, отличный от потока событий?


Если я могу обойтись без потока событий для объектов словаря, как вы решите эту проблему:

Отображение списка стран с количеством пользователей в каждой стране.

В этом случае мне нужно представление Country объектов в модели чтения с прослушивателем для события UserAdded.

Спасибо.

1 Ответ

5 голосов
/ 25 ноября 2010

Если вы используете источник событий в качестве механизма персистентности, то:

  • поток событий является единственным источником истины (моментальные снимки объекта, сгенерированные из потока событий, могут использоваться для повышения производительности, но онитолько техника).
  • Когда вы используете источник событий, вам не нужно явно генерировать событие - просто публикуйте фактические события, сгенерированные при обработке команды.
  • , если у вас есть предопределенный списокстраны, которые никогда не изменятся, вы можете просто жестко кодировать и ссылаться на них по кодам их стран.Однако это подразумевает, что модель представления и пользовательский интерфейс знают об этом, и страны не собираются меняться.

Кстати, я рекомендую публиковать подобные вопросы в DDD / CQRS group .Это самое активное сообщество по вопросам CQRS / DDD / ES.

...