Мне такой подход не очень нравится. Как по мне, поиск — это штуки с боку, не надо их тянут в сущности, хоть это и мета. Поэтому на эластике мы клиентом индексировали то, что нам нужно.
Хотел добавить в евент диспатчер подписку на интерфейсы, чтобы модуль мог просто опубликовать интерфейс и сразу подписаться на все подходящие евенты. Пока сделал в рантайме, при диспатчинге по рефлексии всем листенерам интерфейса внедряется подписка на конкретный эвент. Ощущение что я сову натягиваю на глобус.
Есть типо "горизонтальный" модуль который "публикует" интерфейс типо доступен для использования в других модулях которые захотят в него интегрироваться. Тогда они в своих евентах его добавляют реализацию.