title: CQRS - Single command handler?
body: <p>I´m just trying to wrap my head around CQRS(/ES). I have not done anything serious with CQRS. Probably I´m just missing something very fundamental right now. Currently, I´m reading "Exploring CQRS and Event Sourcing". There is one sentence that somehow puzzles me in regards to commands: </p>
  
  <p>"A single recipient processes a command."</p>
  
  <p>I´ve seen this also in the CQRS sample application from Greg Young (<a href="https://github.com/gregoryyoung/m-r/blob/master/SimpleCQRS/FakeBus.cs" rel="nofollow noreferrer">FakeBus.cs</a>) where an exception is thrown when more then one command handler is registered for any command type. </p>
  
  <p>For me, this is an indication that this is a fundamental principle for CQRS (or Commands?). What is the reason? For me, it is somewhat counter-intuitive. </p>
  
  <p>Imagine I have two components that need to perform some action in response to a command (it doesn´t matter if I have two instances of the same component or two independent components). Then I would need to create a handler that delegates the command to these components. </p>
  
  <p>In my opinion, this is introducing an unnecessary dependency. In terms of CQRS, a command is nothing more than a message that is sent. I don´t get the reason why there should be only one handler for this message. </p>
  
  <p>Can someone tell me what I am missing here? There is probably a very good reason for this that I just don´t see right now. </p>
  
  <p>Regards</p>