A Pipeline Module will be passed input data in the form of an Object. It is the modules responsibility to ensure that the Object can be converted to what it requires.
A module may also be passed a second Object to be used as its configuration settings. Like with input data, it is the responsibility of the module to make sense of this object.
A Pipeline should be able to be paused and continued as appropriate. This will be provided by sleeping the current thread.