This is all about explaining Reactive programming in a short amount of time.
Reactive programming makes events and callbacks composable. Events are composed in to streams that can be manipulated, filtered, combined, and controlled.
We wire up to the search input textbox and wait for the text to change
We don't want to send a new search until the user is done typing.
We set up an asynchronous request and monitor the results
If I search Re, Reac, and Reactive and the last response is from the first request, my results display will show stale data. How does Research get returned from Reactive?
To draw, we need a list of segments. Mouse move events won't work. We'll use Zip and Select to update the stream of move events to a stream of line segments
To draw, we only care about move events while the mouse is down. In addition, we need a clear seperation between streams so we don't link two seperate lines.