We have already covered how to create Reactive Streams of arrays, futures, and blocking requests. However, sometimes, we need a more complicated way of generating signals within a stream or binding an object's life-cycle to the life-cycle of a Reactive Stream. This section covers what Reactor provides for creating streams programmatically.