Its advantages are simplicity and low cost while its disadvantages are lack of elasticity, fault tolerance and scalability.
Narrowly speaking, a pipeline is linear and one-directional, though sometimes the term is applied to more general flows.
Flows with one-directional trees and directed acyclic graph topologies behave similarly to linear pipelines.
In other common models, elements are implemented as lightweight threads or as coroutines to reduce the OS overhead often involved with processes.
Traditional application programs on IBM mainframe operating systems have no standard input and output streams to allow redirection or piping.
Instead of spawning processes with external programs, CMS Pipelines features a lightweight dispatcher to concurrently execute instances of more than 200 built-in programs that implement typical UNIX utilities and interface to devices and operating system services.
Rather than providing a save dialog box containing a file manager to let the user specify where a program should write data, RISC OS and ROX provide a save dialog box containing an icon (and a field to specify the name).
For instance, a user browsing the world-wide web might come across a .gz compressed image which they want to edit and re-upload.
Conceptually, this method could be used with a conventional save dialog box, but this would require the user's programs to have an obvious and easily accessible location in the filesystem.
Pipes and filters can be viewed as a form of functional programming, using byte streams as data objects.
[3] The concept of pipeline is also central to the Cocoon web development framework or to any XProc (the W3C Standards) implementations, where it allows a source stream to be modified before eventual display.