...
To meet these requirements, we need to transform a stream of possibly duplicated, encrypted messages containing extra authentication data into a stream of unique, simple plain-text order messages without the extraneous data fields.
...
We can employ this integration pattern to sub-divide a larger complex process into a sequential series of smaller (and reusable) independent tasks or Filters. The sequence and flow of these filters is controlled by a set of channels (or Pipes).
Each of these filters follows a similar pattern of events: receives a message on the incoming pipe, processes the message, and then transmits the updated resulting message on the outgoing pipe. The pipe connects one filter to the next, sending output messages from one filter to the next.