Вложенные запросы с MediatR / CQRS - PullRequest
0 голосов
/ 07 декабря 2018

Мне просто интересно, является ли дизайн, который я буду пытаться реализовать, допустимым CQRS.

У меня будет обработчик запросов, который сам отправит больше запросов другим подпроцессорам.Его основная задача - объединить результаты нескольких сервисов.Это нормально для отправки запросов из обработчиков?Я уже могу думать о трехуровневых иерархиях этих уровней в моем приложении.

Ответы [ 2 ]

0 голосов
/ 22 декабря 2018

Нет, MediatR предназначен для одного уровня запросов и обработчиков.Лучшим вариантом может быть создание службы / менеджера некоторого вида, который вызывает несколько изолированных запросов с использованием MediatR и агрегирует результаты.Реализация может быть похожа на то, что вы имеете в виду, за исключением того, что это не сам обработчик запросов, а совокупность нескольких обработчиков запросов.

0 голосов
/ 07 декабря 2018

Это плохо повлияет на устойчивость системы и время вычислений, а также увеличит связь.

Если произойдет сбой любого из вспомогательных обработчиков, произойдет сбой всего обработчика.Если запросы отправляются синхронным способом, то общее время вычислений является суммой времени отдельных запросов.

Один из способов повторного использования вспомогательных обработчиков - это запросить их в фоновом режиме, вне запроса клиента,возможный.Таким образом, когда приходит запрос клиента, у вас уже есть данные локально, что повышает устойчивость и время вычислений.Вы останетесь только с соединением, но оно может стоить того, если повторное использование тяжелее связывания.

Я не знаю, возможно ли что-либо из этого в MediatR, есть только общие принципы архитектуры системы.

...