Я бы сказал, обмен сообщениями и служебная шина не являются обязательными.
CQRS просто означает декомпозицию вашего приложения, так что части вашего приложения для чтения и записи могут быть оптимизированы для соответствующей задачи.Команды могут обрабатываться напрямую, даже события, если вы решите их использовать, могут отправляться синхронно.
Хорошим справочником по использованию внутреннего диспетчера является Простой тест Грега Янга .
Обновление: Роб Эштон только что опубликовал оченьхорошая статья о том, что такое CQRS и как не сделать его более сложным, чем на самом деле.