У меня есть ситуация в проекте CQRS, где я должен регистрировать запрос пользователя для информации (запроса), а затем, при необходимости, запускать рабочий процесс на основе ответа из хранилища данных. Пользователь делает запрос на получение информации, которая требует немедленной обратной связи. В то же время система дополнительно запускает рабочий процесс для анализа запроса. Как это реализовать в CQRS, поскольку запрос не является «чистым» запросом или «чистой» командой?CQRS - Как обрабатывать запросы, которые меняют состояние системы
Edit: Чтобы добавить некоторый контекст к этому: Приложение как приложения поиска, где пользователь вводит запрос и возвращает приложение с результатом. Но приложение также регистрирует запрос и может запускать рабочий процесс в зависимости от ответа с сервера. Приложение также «запоминает» последние несколько запросов пользователя и использует его для предоставления контекста новому запросу.
Кроме того, ответ запроса может быть несинхронным. Фоновый работник может нести ответственность за доставку результата клиенту.
В каком состоянии изменяется запрос? Вы имеете в виду, что рабочий процесс, начинающийся в принципе, внесет изменения? Возможно ли запустить рабочий процесс асинхронно? – Hippoom
Да, Hippoom, запрос изменяет состояние системы через рабочий процесс. – Tolu