Command routing

Component: NServiceBus
NuGet Package: NServiceBus (7.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 transport = endpointConfiguration.UseTransport<LearningTransport>();
var routing = transport.Routing();

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

Last modified