Getting Started
Architecture
NServiceBus
Transports
Persistence
ServiceInsight
ServicePulse
ServiceControl
Monitoring
Samples

Command routing

Component: NServiceBus
NuGet Package: NServiceBus (8.x)

The sample demonstrates basic command routing between endpoints.

Running the project

  1. Start all the projects by hitting F5.
  2. In the Sender's console window send some orders by pressing S
  3. In the Sender's console window cancel some orders by pressing C
  4. Both messages are sent to the Receiver which logs a message

Code walk-through

Whenever the Sender sends a CancelOrder command it must specify the destination endpoint.

var command = new CancelOrder
{
    OrderId = orderId
};

await endpointInstance.Send("Samples.CommandRouting.Receiver", command);

Whenever the Sender sends a PlaceOrder command it does not need to specify a destination.

var command = new PlaceOrder
{
    OrderId = orderId,
    Value = value
};

await endpointInstance.Send(command);

This is enabled by configuring a message route for the PlaceOrder command in the endpoint configuration.

var routing = endpointConfiguration.UseTransport(new LearningTransport());

routing.RouteToEndpoint(
    messageType: typeof(PlaceOrder),
    destination: "Samples.CommandRouting.Receiver"
);