public async Task DispatchAsync(IMessage message)
 {
     if (message is ICommand command)
     {
         await _commandDispatcher.DispatchAsync(command);
     }
     else if (message is IEvent @event)
     {
         await _eventDispatcher.DispatchIntegrationEventAsync(@event);
     }
     else
     {
         throw new InvalidOperationException("Message is neither command nor event.");
     }
 }