Прежде всего, вам действительно нужен источник событий в вашем случае? Это выглядит довольно просто для меня. Источник событий имеет как преимущества, так и недостатки. Хотя это дает вам бесплатный контрольный журнал и делает модель вашего домена более выразительной, оно усложняет решение.
Хорошо, я предполагаю, что в этот момент вы продумали свое решение и решили остаться с источником событий. Я думаю, что вам не хватает концепции обмена сообщениями как средства связи между агрегатами. Это лучше всего описано в статье Пэт Хелланда (кстати, не о DDD или Event Sourcing, а о масштабируемости).
Идея состоит в том, что агрегаты могут посылать сообщения друг другу, чтобы вызвать некоторое поведение. Между агрегатами не может быть синхронного взаимодействия (вызов метода a.k.a), поскольку это может привести к проблемам согласованности.
В вашем примере Person AR будет отправлять резервное сообщение в AR бронирования. Это сообщение будет передаваться асинхронным и надежным способом. Booking AR обработает это сообщение и, если оно уже забронировано другим лицом, ответит сообщением ReservationRejected. В противном случае он отправит ReservationConfirmed. Эти сообщения должны обрабатываться Person AR. Возможно, они сгенерируют еще одно событие, которое будет преобразовано в электронную почту, отправленную клиенту, или что-то в этом роде.
Нет необходимости извлекать данные запроса в модели. Просто обмен сообщениями. Если вам нужен пример, вы можете скачать исходные тексты ветки «Сообщения» проекта Ncqrs и взглянуть на класс ScenarioTest. Он демонстрирует обмен сообщениями между AR с использованием образца Cargo и HandlingEvent из Синей книги.
Это отвечает на ваш вопрос?