EventStore без CQRS
Я много видел о EventStores, но все статьи связаны с разговорами о CQRS.
Мы хотим использовать EventStores для интеграции ограниченных контекстов, но хотим придерживаться традиционного ORM для чтения / записи агрегатов, чтобы избежать команды / запроса и отдельной модели чтения, что в нашем случае добавило бы слишком много сложности.
Поскольку общение с обеими концепциями настолько популярно, можно предположить, что они предназначены для совместной жизни - есть ли подводные камни в EventStore 'lite' без CQRS по сравнению с реализацией EventStores для агрегатов /CQRS/read-model?
2 ответа
Запустите NoSql Distilled - вы сэкономите много времени, ничего не делая в течение нескольких дней, но читая его и вытягивая то, что вам нужно. Если вы "читаете / пишете агрегаты", вам следует рассмотреть такие основные базы данных, как RavenDB.
Обратите внимание, что тег store-store предназначен для хранилища событий JOliver и имеет в качестве ключевых архитектурных понятий
У вас также есть немного запаздывания в том, что для создания событий ваш домен создается определенным образом, чтобы облегчить это. Ключевые вещи, которые контрастируют с тем, как вы ставите вещи в своем вопросе (перефразируя плохо и / или несправедливо: я хочу использовать хранилище событий просто для хранения событий - все остальное я могу сделать сам)
события сгруппированы - его реальная единица управления событиями
отправка на что-то.
Изучите решения для управления очередями, если вы не хотите модель домена, основанную на событиях. Это очень законная вещь - не притворяйтесь, что Event Store - это обобщенная подпоследовательность пабов.
Сделать проект Dispatcher для денормализаторов, создающих модель чтения, очень просто - вы можете использовать все виды экзотических вещей, но с помощью знакомого инструмента, такого как SQL SB, с простым слоем базы данных, таким как PetaPoco, все будет хорошо.
Вы действительно сделали всплеск с CommonDomain и EventStore? Вы читали документ readme в nuget? Вы смотрели 2 видео JOliver?
Мы хотим использовать EventStores для интеграции ограниченного контекста
Можно использовать хранилище событий в качестве очереди сообщений с дополнительным преимуществом, так как оно является постоянным, и новый подписчик может запрашивать все прошлые события.
но мы хотим придерживаться традиционного ORM для чтения / записи агрегатов, чтобы избежать команды / запроса и отдельной модели чтения, что в нашем случае добавило бы слишком много сложности.
Кроме того, вы все еще можете получить некоторые из преимуществ CQRS, просто используя отдельную модель чтения для запросов, а не свою поведенческую модель.
В целом, вы можете использовать EventStore без использования источника событий, однако вы должны убедиться, что он поддерживает все требования вашего сценария интеграции. Возможно, вам понадобятся другие компоненты в дополнение к хранилищу событий. В более общем смысле хранилище событий можно использовать для хранения любых данных временных рядов.