The Pipes and Filters (70) architectural style gives us an elegant approach to represent a sequence of processing steps as independent filters connected by pipes (channels). In its default configuration, the filters are connected by fixed pipes. If we want to allow messages to be routed to different filters dynamically, we can use special filters that act as Message Routers (78). The routers dynamically determine the next filter to route the message to.

