Обновить

Комментарии 11

Думаю, имеет смысл сделать сравнение с Mediator - открытая лицензия и производительность выше, чем у MediatR.

По производительности с SourceGenerator тягаться не получится, только когда найду силы сделать свою реализацию на SourceGenerator'ах)

Эта либа позволяет одну и ту же middleware добавить и на команду, и на запрос?

Да, в случае команды в TResponse будет CommandResponse заглушка, по аналогии с Unit

А смысл? Как верно подметили, в плане производительности есть Mediator.
А назначение вызовов (Command, Query, Event) можно и так писать постфиксом к request. Ведь это все равно контракт и мы, как ни крути, зависим от реализации, которая будет соотнесена с нашим запросом.
Для проверок и аналитики было бы достаточно использовать маркеры типа IQuery или IEvent, но с одной общей реализацией движка.

Начал я это делать просто из собственного любопытства. Но дальше, видимо, мне ещё предстоит работа, сделать свою реализацию удобнее и лучше, чтобы в потраченных усилиях появился смысл.

Отличная работа, хорошая реализация и практика. Я хотел бы уточнить, что мой комментарий относится именно к архитектурному решению, а не к проекту в целом. От души желаю успехов и развития проекта.

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

оффтоп

Надо было лучше думать над неймингом, потому что одна ошибка и он уже ассоциируется с "per rectum" )

Уже вижу, как у ICommand появляется возвращаемый тип, как результат выполнения команды (например отдать Id созданной сущности), тот же путь прошел и MediatR, только с другой стороны (IRequest<Unit>)

Так то я отношу себя к конгрегации "Вам не нужен MediatR", но вашему проекту желаю всяческого успеха.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации