title: Communication between modules - MediatR or Interface/Fasade?
body: <p>I'm involved in fully modular monolithic application project. We use MediatR like Jimmy describes in this article: <a href="https://lostechies.com/jimmybogard/2016/12/12/dealing-with-duplication-in-mediatr-handlers/" rel="nofollow noreferrer">Dealing with Duplication in MediatR Handlers</a>. Exactly this:</p>
  
  <blockquote>
    <p>I want MediatR to serve as the outermost window into the actual domain-specific behavior in my application</p>
  </blockquote>
  
  <p>But what with internal communication?</p>
  
  <p>We have some doubts about communication between modules. We use Events and Queries (in monolithic application it is sometimes useful and inevitable). Especially we have problem with queries. If one module must query another then our handlers use <code>IMediator</code> (again) for executing queries from other modules. It looks odd and breaks our approach. </p>
  
  <p>Jimmy mentions <code>Excluding sub-handlers or delegating handlers, where should my logic go?</code> but we do not know what that handlers are.</p>
  
  <p>Maybe we should just use simple interfaces (aka public facade) for this?</p>
  
  <p>It will be cleaner and everything will be clearly defined?</p>