Когда мы используем CQRS мы определяем два типа запросов
Первый это команды
Второй это сами запросы (читать как query)
Команды вносят в систему изменения и добавляют что-то в базу
Запросы это запросы, они возвращают данные
В сочетании с этим преимущественно используют медиатор
Он принимает в себя определенный объект и в зависимости от того, какой объект мы туда передали вызывает для него хендлер
И здесь нам становятся достпуни две возможности
Проводить операции перед тем как медиатор обработает запрос или после
примеры
валидация
логирования
Перехват ошибок и тд
Это уменьшает количество кода и делает его более лаконичным в связке с cqrs