Я думаю, что Event Sourcing заставляет людей бояться CQRS. И это по причине. Это не естественно - когда вы взаимодействуете с чем-то в реальном мире, вам не нужно получать полную историю об этом объекте.
« источник событий является полностью ортогональной концепцией для CQRS » ( source ) - технически, если вы не используете ES, вы ничего не теряете из функций CQRS.
Я понятия не имею, почему Event Sourcing рассматривается как единственная основа для решения некоторых проблем, связанных с «обменом сообщениями», таких как: дублирование / отсутствие сообщений, изменение порядка сообщений и коллизии данных и т. Д. Это неправда, если вы не t Используя Event Sourcing, вы не можете создавать инкапсулированные средства для решения таких проблем другим способом.
Как я вижу альтернативные способы реализации обмена сообщениями в CQRS с использованием другого принципа организации данных , который вы можете прочитать здесь .
Я предлагаю подход «подписанные документы», при котором ваши данные рассматриваются не как состав событий модификации, а как состав неизменных частей, подписанных ответственными пользователями. Я уверен, что может быть много других решений для реализации потока сообщений и хранения данных. И вам нужно учитывать свою бизнес-модель при выборе того, который вам нравится использовать.