Name: Filter Intent: - apply composable transformations to a stream of elements STREAM, not array or list Structure: - transformations are chained line in a pipeline - all the tranformations have the same interface - there are two key methods - connect to the previous module in the chain statically is constructor, dynamically is setter - pull an element from the previous module - there is an initial element in the chain (source) Notes: - there is symmetric (specular) version - previous -> next - pulling -> pushing - source -> sink