Skip to content

Message Forwarding

PM> Install-Package Shuttle.Esb.MessageForwarding

The MessageForwarding module for Shuttle.Esb will forward any handled messages onto the specified queue(s).

Configuration

c#
services.AddMessageForwarding(builder => 
{
	builder.Options.ForwardingRoutes.Add(new MessageRouteOptions
	{
		Uri = "queue://configuration/inbox-work-a",
        Specifications = new List<MessageRouteOptions.SpecificationOptions>
        {
            new()
            {
                Name = "StartsWith",
                Value = "Shuttle.Messages.v1"
            },
            new()
            {
                Name = "StartsWith",
                Value = "Shuttle.Messages.v2"
            }
        }
	})
});

The default JSON settings structure is as follows:

json
{
  "Shuttle": {
    "Modules": {
      "MessageForwarding": {
        "ForwardingRoutes": [
          {
            "Uri": "queue://./inbox-work-a",
            "Specifications": [
              {
                "Name": "StartsWith",
                "Value": "Shuttle.Messages.v1"
              },
              {
                "Name": "StartsWith",
                "Value": "Shuttle.Messages.v2"
              }
            ]
          },
          {
            "Uri": "queue://./inbox-work-b",
            "Specifications": [
              {
                "Name": "TypeList",
                "Value": "DoSomethingCommand"
              }
            ]
          }
        ]
      }
    }
  }
}

The ForwardingRoutes makes use of the MessageRouteOptions as defined in the Shuttle.Esb package and the documentation for the MessageRouteOptions is applicable to the ForwardingRoutes as well.