Separating the components into two separate concurrent threads of execution resolves much of the delay issues. This paper describes a framework for building data processing components which allows applications to handle large data streams while minimizing the impact on the event handling side. Each instance of a data-driven component is called a module. Data streams originate at producer modules, are piped through processing modules, and terminate at consumer modules. This has considerably reduced the inherent complexity involved when streaming data through various types of connected modules.
Wires have their own control interface.
A data stream can be started, stopped, resumed, and monitored. Additional functionality such as multi-casting and switching are implemented as well. Data streams are viewed as a series of packets or chunks of arbitrary size. Chunks are composed of data frames and description objects. Data frame objects simply hold pure data.