I've been added tests and fixing some issues in the local stream builder class. I need some input on how the stop() method should work so I can write the appropriate tests.
Option 1.) Gentle Shutdown Immediately stop the providers from producing more data, but allow for all data currently in the stream to finish processing. Shutdown time would be unknown as a result. Option 2.) Forceful Shutdown Immediately stop the providers from producing more data, and stop all processors/writers. Data will be left in the pipeline will be discarded. shutdown will be immediate Option 2b) Forceful Shutdown after small wait Immediately stop providers from producing more data. Give the processors/writers a small window to try to finish processing (< 10secs), and if not finished, forcefully shutdown all processors/writers. These options can be changed in the future as more features are added. For example once datum tracking is implemented, we will probably want a combination of option 1 and 2b. But we need a defined way for it work now, so tests are testing the correct functionality. -Ryan Ebanks
