The API is responsible for building graphs of stages based on the operators the user invoked.
The stages form an SPI for ReactiveStreamsEngine
implementations to build into a running stream.
Examples of stages include:
-
Map
-
Filter
-
Elements to publish
-
Collect
-
Instances of Reactive Streams
Publisher
,Subscriber
andProcessor
Each stage has either an inlet, an outlet, or both.
A graph is a sequence of stages, consecutive stages will have an outlet and and inlet so that they can join - a graph that has a stage with no outlet followed by a stage that has an inlet is impossible, for example.
Only the stages at the ends of the graph may have no inlet or outlet, whether these end stages have an inlet or outlet determines the shape of the overall graph.
The API is responsible for ensuring that as graphs are constructed, only graphs that are logically possible are passed to the ReactiveStreamsEngine
to construct.