Reactive Streams is an initiative to provide a standard for asynchronous stream processing with non-blocking back pressure.
In a synchronous application if a the second application is slowing down it directly blocks the main application.
Hence asynchronous programming came in. It will avoid blocking the main thread and do the work in background so that main thread can continue with the rest.
Problem with this is if main app creates more tasks than the second app can handle, second method had to buffer them.
To solve this issues Reactive issues came in. It does all asynchronously but if a publisher cannot slow down, publisher has to decide whether to buffer, drop, or fail. That is Reactive streams introduce back pressure if asynchronously task handling limits are exceeded.
My other blogs: