Pipes and Filter Architecture
This is an architectural style or pattern (specifically an Enterprise Integration Pattern), which consists of nodes or components (known as filters) which are connected together by connectors (known as pipes). The filters act on the data i.e. they perform data processing, whereas, pipes transport the data.
Here, pipes are generally dumb and filters are smart. Pipes represent channels which transport data using a particular protocol (for instance, HTTP or FTP etc.). Filters represent processing units which act upon the input data and generate a result, which is fed to the output channel.
Benefits:
- Enables loose coupling of systems. If we need a system which has to execute several steps to process data and if these steps need to be configurable, then this architecture suits the best.
Reference Implementation:
Spring Integration module is built upon Pipes and Filter pattern. Similarly, when we have to integrate heterogeneous systems through a workflow, we can apply this pattern.