The pipe-filter, or pipe and filter, architectural pattern is a robust architecture that can contain any number of filters. The pattern starts by taking data from multiple sources and then passes them through sequential filters to transform the data from one format to another. The filters are connected via pipes. The next diagram shows an overview of the pipe-filter pattern with three sequential filters:

Pipe-filter pattern—overview
We can take a deeper look at this pattern with a UML sequence diagram. This diagram illustrates the data flow and the utility of the pipes connecting the filters:

Pipe-filter pattern—UML sequence diagram
In the next sections, we will explore the following example implementations of the pipe-filter architectural pattern:
- Simple transformation
- Complex transformation