Есть ли в этих ситуациях какие-либо рекомендации относительно степени детализации событий в домене?
Если вы ищете руководство по событиям в домене, event-sourcing
- это хороший поисковый термин для использования: люди, которые хранят свое доменное состояние в потоке событий, тратят много времени на беспокойство о таких вещах, как гранулярность.
В общем, наличие нескольких событий домена, связанных с одной транзакцией, common . Другими словами, вам не следует стесняться рассматривать несколько доменных событий, когда эта модель лучше подходит для вашего домена, чем отдельное событие.
Обычно обсуждаемый пример - «торговая книга», где мы соответствуют заказам на покупку и продажу. Один большой ордер на продажу может закрыть несколько разных ордеров на покупку, и вполне естественно, что язык домена запускает разные события для каждого из закрытых ордеров.
В сложных процессах это часто полезно уметь отслеживать ход событий; C было вызвано B было вызвано A. Работа по выполнению анализа может быть значительно проще, если нам не нужно копаться в B, пытаясь выяснить, какая часть из B была причиной из C.
Ряд одинаковых мотивов для сплоченности в нашем исходном коде также применим к дизайну событий.
Тем не менее, вы обычно хотите причин домена для события нескольких доменов, а не механические причины. Если большой, неудобный для сериализации граф информации действительно является одним изменением атома c на языке вашего домена, то вам действительно следует заняться разработкой подходящей схемы для него, вместо того, чтобы быстро сокращать информацию произвольные границы, чтобы данные соответствовали вашим условным обозначениям схемы.
aka "Это зависит".