Decompose a task that performs complex processing into a series of separate elements that can be reused. Doing so can improve performance, scalability, and reusability by allowing task elements that perform the processing to be deployed and scaled independently.
https://learn.microsoft.com/en-us/azure/architecture/patterns/pipes-and-filters