Clean message flows
for modern .NET applications.

A lightweight mediator library for requests, notifications and pipeline behaviors.

Get Started GitHub
var productId =
    await mediator.SendAsync<CreateProductCommand, int>(command);

await mediator.SendAsync(
    new DeleteProductCommand(productId)
);

Request / Response

Send commands and queries with strongly typed responses.

Notifications

Publish events and execute multiple handlers.

Pipeline Behaviors

Add logging, validation and cross-cutting workflows.

Async First

Built for modern asynchronous .NET applications.