Routing is used to choose which channel must process a message when different channels share the same gateway in.
Routing is done at the first step that is different for channels sharing the same gateway in. So if 2 channels use the same gateway in but different messages in, routing will take place at message in step, and determine (based on the routing rules you configured) where your message should be handled next. If both channels use the same gateway in and the same message in but different transformations, routing will take place at the transformation step, to determine which transformation should be used.
As the routing only chooses the next element of the processing (message in, transformation or gateway out), and not directly channels, it can happen that a channel has routing at multiple steps. Let's illustrate this by the following example:
- The 2 channels share the same gateway in. Routing will be required.
- As the 2 channels also share the same message in, no routing is required at this step.
- When coming to transformation step, there are 2 potential transformations to be executed: a routing is required to choose between these 2 transformations.
This example will be used for all screenshots of this chapter.
Note: The routing changes don't change the status of the channel to be "Apply changes" but need to be deployed to push the changes into production, so you should deploy your environment after any changes in the routing.