Я искал Event Sourcing для нового проекта с JS Oliver's EventStore и mongo в качестве слоя персистентности, но натолкнулся на несколько вопросов:
До попытки поиска событиймой домен сохранился до БД, и я использовал доменные события Udi pattern , которые очень хорошо работали для меня, когда NHibernate управлял единицей работы.Однако я получил одну единицу работы, которая может влиять на несколько агрегатов, например.
Я "извлекаю" свой агрегат корзины покупок, который вызывает событие, на которое обработчик отвечает, создавая агрегат счета-фактуры, который, в свою очередь, вызывает событие (это только пример)
В этом случаеУ меня есть одна единица работы, которая изменяет два агрегатных корня - в хранилище событий я могу добавить поднятые события к двум различным потокам событий, но они не будут сохраняться атомарным способом (первый может завершиться успешно, а второй завершится неудачей).Так, что люди делают, чтобы избежать этого?
На домашней странице github предлагается, чтобы вы могли использовать свободный интерфейс для настройки EventStore, однако, когда я загружаю исходный код, компилируюэто и посмотрите в примере, класс wireup, кажется, не доступен - это в другой ветке?(У меня есть мастер)
Каков рекомендуемый способ обработки импликации IStoreEvents?Как синглтон похож на сессионный завод Nhibernates?