Reactive Streams is a very simple spec, so simple it only has four interfaces: Publisher, Subscriber, Subscription, and Processor:
Publisher: A component that is producing output, whether that’s one output or an infinite amount
Subscriber: A component that is receiving from a Publisher
Subscription: Captures the details needed for Subscribers to start consuming content from Publishers
Processor: A component that implements both Subscriber and Publisher