For example, in the javadoc of Mono.fromRunnable(Runnable), in the section Type Parameters, they define
T - The generic type of the upstream, which is preserved by this operator
In simple words, the upstream is the stream that comes before the current operator.
On the other hand, downstream is the stream that comes after the current operator.
For example, consider this operator chain:
Flux .map(...) .flatMap(...) .map(...) .subscribe()
In this case, taking the
flatMap operator as reference, the source
Flux and the first
map operator would be the upstream.
Whereas the second
map operator, as well as the
subscribe operator, would be the downstream.
Some operators will be affected by what happens upstream or downstream, so always review the documentation to look for references to these terms.