Message forwarding

Component: NServiceBus
Standard support for version 5.x of NServiceBus has expired. For more information see our Support Policy.

Use this feature to forward successfully processed messages from an endpoint to a specific destination endpoint. Forwarding messages is particularly useful in complex upgrade scenarios when the old version and new version of a particular endpoint are running side-by-side.

Auditing vs. Forwarding

Auditing and Forwarding are very similar. Both send a copy of the processed message to another queue. The main difference is the intended usage scenarios.

Auditing is used for collecting information on what is happening in the system. The audited message is enriched with additional information regarding the processing of it. Forwarding would send a copy of the processed message without the additional auditing information.

Some of the audit message headers are available

Configuring Message Forwarding

Using app.config

    <section name="UnicastBusConfig"
             type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core"/>
  <UnicastBusConfig ForwardReceivedMessagesTo="destinationQueue@machine" />

Using IProvideConfiguration

class ProvideConfigurationForMessageForwarding :
    public UnicastBusConfig GetConfiguration()
        return new UnicastBusConfig
            ForwardReceivedMessagesTo = "destinationQueue@machine"

Using IConfigurationSource

public class ConfigurationSource :
    public T GetConfiguration<T>() where T : class, new()
        if (typeof(T) == typeof(UnicastBusConfig))
            var config = new UnicastBusConfig
                ForwardReceivedMessagesTo = "destinationQueue@machine"

            return config as T;

        // Respect app.config for other sections not defined in this method
        return ConfigurationManager.GetSection(typeof(T).Name) as T;

Initialize the Configuration Source as follows:

busConfiguration.CustomConfigurationSource(new ConfigurationSource());

Forwarding a message from the handler

Individual messages can be forwarded directly from the handler:


Related Articles

  • Auditing Messages
    Configure where to send messages and it provides built-in message auditing for every endpoint.

Last modified