title: Is it a good practice to wrap Masstransit for CQRS implementation?
body: <p>I would rather have a separate <code>CommandBus</code> and <code>EventBus</code> and also <code>ICommandHandler&lt;TCommand&gt;</code> and <code>IEventHandler&lt;TCommand&gt;</code>  so that an <code>OrderEventHandler</code> class looks like:</p>
  
  <pre><code>public class OrderEventHandler :
      IEventHandler&lt;OrderPlaced&gt;,
      IEventHandler&lt;OrderRegistrantAssigned&gt;,
      IEventHandler&lt;OrderTotalsCalculated&gt;,
      IEventHandler&lt;OrderConfirmed&gt;,
      IEventHandler&lt;OrderExpired&gt;,
      IEventHandler&lt;SeatAssignmentsCreated&gt;,
      IEventHandler&lt;SeatAssigned&gt;,
      IEventHandler&lt;SeatAssignmentUpdated&gt;,
      IEventHandler&lt;SeatUnassigned&gt;
  { 
      public void Handle(OrderPlaced @event){...}
      .
      .
      .
  }
  </code></pre>
  
  <p>A possible solution can be providing an adopter between <code>Masstransit</code> infrastructure and my <code>CQRS</code>(like <code>ConsumerToHandlerAdopter&lt;T&gt;</code>which only exposes the context details I generally need ).</p>
  
  <p>But since I'm new to <code>Masstransit</code>, I can't get my head around the issues I might have to deal with later.</p>
  
  <p><strong>So my question is:</strong>
  Does it generally worth to wrap Masstransit so that I deal with my own Infrastructure?</p>