code: @Override
  	public Bus<M> send(M message) {
  		logger.trace("starting dispatching message '{}' to destinations", message);
  		for(Destination<M> destination : destinations) {
  			logger.trace("dispatching to destination {}", destination);
  			destination.onMessage(message);
  		}
  		logger.trace("done dispatching message '{}' to destinations", message);
  		return this;
  	}
docs: Sends a message synchronously to all registered destinations; message
  handling code in the destinations will run in the same thread as the sender
  object's.
  
  @see org.dihedron.patterns.bus.Bus#send(java.lang.Object)