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.