A Wire Tap lets you take a sample of an ongoing message in your flow, in order to take some action with it while it goes through the flow. The tapped message is copied and any resulting routing runs in its own separate thread and thus will not affect the main flow if the main flow is set to asynchronous. If the flow is synchronous it won't run in its own seperate thread.
A Wire Tap has two forwarding endpoints. The endpoint on the right side of the component routes the original message, while the one on the bottom starts a new thread and routes the copied message.
Following is an example of a Wiretap use case. In this example messages are received through an inbound http endpoint, processed with XSLT and sent to HTTP endpoint. A wiretap component is used in this example to store the original incoming messages on an FTP server. This happens in parallel with the main flow of converting and forwarding the message.
The Wire Tap component is particularly well suited for debugging and testing flows since one's extensive usage may cause heavy load. It should be used to accomplish simple and light fire and forget operations as per design.
Beware that the Wire Tap component is set to allow waiting for pending messages only to certain extent, if messages are being enqueued faster than they are being processed by the bottom route of the Wire Tap component, they will be discarded after a threshold is hit.