Mediator — central communication.
MediatR:
1// Request2public record CreateOrderCommand(string Product) : IRequest<int>;34// Handler5public class CreateOrderHandler(IOrderService svc)6 : IRequestHandler<CreateOrderCommand, int>7{8 public async Task<int> Handle(9 CreateOrderCommand request, CancellationToken ct)10 {11 return await svc.CreateAsync(request.Product);12 }13}
Usage:
1var orderId = await mediator.Send(new CreateOrderCommand("Widget"));
Key: MediatR for CQRS.