Вопросы с тегом «event-sourcing»

3
Как обрабатывать побочные эффекты в CRQS при воспроизведении событий?
Говорят, что в CQRS легко исправить ошибку, вы просто повторно развертываете и затем воспроизводите события. Но что, если одно из событий должно привести к тому, что внешняя система, не находящаяся под вашим контролем, «отправит товар» клиенту, если вы просто воспроизведите события, товар будет отправлен дважды. Как вы решаете это?

2
Как создать новый агрегатный корень в CQRS?
Как мы должны создавать новые агрегатные корни в архитектуре cqrs? В этом примере я хочу создать новый совокупный корневой AR2, который содержит ссылку на первый AR1. Я создаю AR2, используя метод AR1 в качестве отправной точки. Пока что вижу несколько вариантов: Внутри метода в AR1 createAr2RootOpt1я мог бы new AR2()немедленно …

3
Источник событий, одно событие, состояние двух агрегатов изменилось
Я пытаюсь изучить способы DDD и смежных предметов. Мне пришла в голову идея простого ограниченного контекста для реализации «банка»: есть счета, деньги можно вкладывать, снимать и переводить между ними. Также важно вести историю изменений. Я идентифицировал сущность Аккаунта, и было бы полезно отслеживать события в нем. Другие сущности или объекты-значения …

1
Источник событий только для случаев, когда записи редки?
Я читаю источники событий и не могу перестать задавать себе вопрос, имеет ли это смысл только в экзотических ситуациях, когда записи очень редки или требуется аудит военного уровня. Неисключительная система с любым значительным использованием может производить от сотен до тысяч записей в день, переводя, скажем, в миллион или 2 записи …

4
Где должен быть полностью инициализирован объект в CQRS + ES: в конструкторе или при применении первого события?
Похоже, что в сообществе ООП широко распространено мнение, что конструктор класса не должен оставлять объект частично или даже полностью неинициализированным. Что я имею в виду под «инициализацией»? Грубо говоря, атомарный процесс, который приводит вновь созданный объект в состояние, в котором содержатся все его классовые инварианты. Это должно быть первое, что …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.