Reactive Programming Is Programming With Asynchronous Data Streams. With reactive programming, you observe these streams and react when a value is emitted. So, in your code, you are going to create data streams of anything and from anything: click events, HTTP requests, ingested messages, availability notifications, changes on a variable, cache events, measures from a sensor, literally anything that may change or happen. This has an interesting side-effect on your application: it’s becoming inherently asynchronous.