212 похожих чатов

Привет! Бизнес операция закончилась и результатом стало не только обновление стейта

но доменные события.

Во внешние системы я отправляю не доменные события, а интеграционные события.

Интеграционные события испускают доменные хендлеры.

В привычном нам обновление стейта я могу писать в доменные события все что угодно, что участвует в бизнес операции

Допустим это event sourcing, и там доменные события строятся на aggregate_event, которые содержит в себе только те данные, которые нужны для восставноления стейта.


Возникает вопрос:
Могу ли я в хендлере подгружать read model к примеру по ID агрегата из доменного события для построения более богатого наполнения integration event?

5 ответов

6 просмотров

ты изначально хотел собирать жирный интеграционный ивент в рид модели, так вот интеграционное событие должно быть еще более тонкое нежели большинство доменных как писал фесор: "По дефолту ивенты которые у тебя между модулями гуляют вообще не должны содержать ничего кроме айдишки времени и может быть какой мета инфы. Все остальное - получил ивент сходи. Ивенты часть контрактов, больше данных в ивенте - сложнее и менее стабильные контракты."

hypercasual- Автор вопроса
Valentin Gerbey
ты изначально хотел собирать жирный интеграционны...

Я хотел собирать интеграционный на основе каких то данных, которых нет в aggregate event. В итоге интеграционник будет выбрасывать результирующий эвент после построения новой рид модель.

hypercasual
Я хотел собирать интеграционный на основе каких то...

а что мешает слушателю этого интеграционного события достать недостающие данные?

hypercasual- Автор вопроса
Valentin Gerbey
ты изначально хотел собирать жирный интеграционны...

По остальному ок. Тонкие контракты. Я и не стремился к жирным контрактам между модулями. Я сталкивался с ситуациями, когда aggregate event не содержит некоторых данных для внешней системы. Не знаю где тут ошибка... Ошибка в проектировании агрегата... Или же реальная проблема, которая решается, как уже сказали выше эвентом на основе перестройки рид модели.

Похожие вопросы

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
53
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
16
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
буквально один оставшийся вопрос при выполнении строчки mov eax, 5 операнд "5" будет присутствовать где-либо в памяти (любой), кроме как в памяти блока .code? подвопрос: как...
12
Всем ку. Подскажите, если задекларировал массив так: int arr[10] = {1, 2, 3, 4}, то в arr[4] будет мусор или нуль?
Sasha K
14
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
я не понимаю mov [r11+8],rcx и прочие. мы записываем значение из rcx, куда?
Bor
15
у меня такой вопрос про память в x86 возник, может кто пояснить?.. у процессора есть (как минимум) 3 типа адресов (названия "п1", "п2", "п3" --- мои, чтобы проще было дальше)...
Toideng
6
А какие расширения активно используются в промышленности? Именно идейные, по типу гадт, а не всякие оверлоадедстрингс
Степан
11
Карта сайта