A scalable component is one which coordinates children components and filters their results.
- input: commands from parent
- output: filtered data to parent
- contains: child components.
Children can send information to parents and commands/requests to their own children.
Children must not leak information in any other direction.
A parent completes an operation when all of its children have completed sub-operations.
Corollary: a parent component is busy as long as any of its children components are busy (recursively).