> ## Documentation Index
> Fetch the complete documentation index at: https://easyaf.nimbleapps.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# IMessageDispatcher

> Defines the required composition of every Dispatcher used by SimpleMessageBus to send [MessageEnvelope](/simplemessagebus/api-reference/CloudNimble/SimpleMessageBus/Core/Mess...

## Definition

**Assembly:** CloudNimble.SimpleMessageBus.Dispatch.dll

**Namespace:** CloudNimble.SimpleMessageBus.Dispatch

## Syntax

```csharp theme={"dark"}
CloudNimble.SimpleMessageBus.Dispatch.IMessageDispatcher
```

## Summary

Defines the required composition of every Dispatcher used by SimpleMessageBus to send [MessageEnvelope](https://easyaf.nimbleapps.cloud/api-reference/CloudNimble/SimpleMessageBus/Core/MessageEnvelope)MessageEnvelopes\</see> to the
[IMessageHandler](https://easyaf.nimbleapps.cloud/simplemessagebus/api-reference/CloudNimble/SimpleMessageBus/Core/IMessageHandler.md)IMessageHandlers\</see> registered to handle that message's [Type](https://easyaf.nimbleapps.cloud/simplemessagebus/api-reference/System/Type.md).

## Remarks

Message dispatchers control how messages are delivered to their handlers. SimpleMessageBus provides two built-in
implementations: [OrderedMessageDispatcher](https://easyaf.nimbleapps.cloud/simplemessagebus/api-reference/CloudNimble/SimpleMessageBus/Dispatch/OrderedMessageDispatcher.md) for sequential processing and [ParallelMessageDispatcher](https://easyaf.nimbleapps.cloud/simplemessagebus/api-reference/CloudNimble/SimpleMessageBus/Dispatch/ParallelMessageDispatcher.md)
for concurrent processing. Custom dispatchers can be implemented for specialized routing or processing logic.

## Methods

### &#x20;Dispatch Abstract

Dispatches an incoming [MessageEnvelope](https://easyaf.nimbleapps.cloud/simplemessagebus/api-reference/CloudNimble/SimpleMessageBus/Core/MessageEnvelope.md) to the [IMessageHandler](https://easyaf.nimbleapps.cloud/simplemessagebus/api-reference/CloudNimble/SimpleMessageBus/Core/IMessageHandler.md)IMessageHandlers\</see> registered to handle that message's [Type](https://easyaf.nimbleapps.cloud/simplemessagebus/api-reference/System/Type.md).

#### Syntax

```csharp theme={"dark"}
System.Threading.Tasks.Task Dispatch(CloudNimble.SimpleMessageBus.Core.MessageEnvelope messageEnvelope)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `messageEnvelope` | `CloudNimble.SimpleMessageBus.Core.MessageEnvelope` | The [MessageEnvelope](https://easyaf.nimbleapps.cloud/simplemessagebus/api-reference/CloudNimble/SimpleMessageBus/Core/MessageEnvelope.md) instance to send to the registered [IMessageHandler](https://easyaf.nimbleapps.cloud/simplemessagebus/api-reference/CloudNimble/SimpleMessageBus/Core/IMessageHandler.md)IMessageHandlers\</see>. |

#### Returns

Type: `System.Threading.Tasks.Task`
A [Task](https://learn.microsoft.com/dotnet/api/system.threading.tasks.task) reference for the asynchronous function.

#### Remarks

The implementation determines how handlers are invoked - sequentially, in parallel, or using custom logic.
All matching handlers (those that declare support for the message type) will be called.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.