Можем ли мы распараллелить построение представлений?может быть на основе агрегатного идентификатора события.
Предположим, что в нашем DDD есть два агрегата, Route & Trip (домен: система управления школьным автобусом).Если представления просты:
- События, происходящие в агрегатах маршрутов, будут проецироваться в таблицу «Маршрут».Записи в таблице маршрутов зависят только от данных, содержащихся в событиях агрегата маршрутов.
- События, происходящие в агрегатах маршрутов, будут проецироваться в таблицу «Поездки».Записи в таблице Trip зависят только от данных, содержащихся в событиях агрегата Trip.
- (материализованное) представление - назовем его RouteTrip - которое объединяет записи в таблице маршрутов и таблице поездок.
В этом случае возможно Я могураспараллелить построители представлений, возможно, по статистическому идентификатору события.Каждый поток / процесс будет использовать события одного и того же экземпляра агрегата.Ведь RouteTrip зависит только от конечного состояния соединенных маршрутов и поездок ... или нет?Я думаю, это слишком ограничительно, только для самых тривиальных случаев.
У меня складывается впечатление, что события действительно должны обрабатываться строго последовательно (даже в зданиях вида).В самом деле?
Кто-нибудь имел опыт проектирования проекций представлений в архитектуре CQRS?
Может быть связано: CQRS (получение событий): проекции с несколькими агрегатами