Этот вопрос действительно слишком широк для SO. Чтобы найти подробные статьи, проекты github, видеоролики и другие ответы на эти вопросы, вам нужно зайти в Google «Основы поиска событий в лазури».
В общем, в Event Sourcing есть две основные идеи, которые вам нужны - сообщения и события. Типичный процесс (не единственный, а общий) выглядит следующим образом. Ваш пользовательский интерфейс создает сообщение, которое делает запрос на изменение в AR. Проверка этого сообщения выполняется на источнике создания сообщения.
Затем сообщение отправляется в API, где оно снова проверяется, поскольку вы не можете доверять всем возможным отправителям. Запрос обрабатывается, в результате чего вносятся изменения в AR. Затем создается событие, описывающее внесенные изменения, и это событие помещается в источник события (концентратор событий Azure, Kafka, Kinesis, БД и т. Д.). Этот список событий сохраняется навсегда и описывает каждое изменение, внесенное в этот AR в течение времени, включая первоначальный запрос на создание. Чтобы получить текущее состояние AR, просто сложите все события.
Ключевая идея, которая вводит в заблуждение при изучении источников событий, - это два разных типа «событий». Сообщения просят о внесении изменений. В «Журнале событий» записывается, что изменение было внесено.