tream. Let’s look at the specification available at https://github.com/reactive-streams/reactive-streams-jvm . It comprises the following two parts:
API: This describes the specification.
Technology Compatibility Kit (TCK): This is a criteria or standard test suite for compliance testing of implementations. In short, it will make sure the given implementation conforms to the declared specification.
Taking a closer look at the API, we find that it is rather simple and comprises just four interfaces as follows:
Publisher: This interface represents an entity that acts as a supplier of an unbounded number of sequenced events or elements. It will publish the elements as per the requirement of the subscriber.
Subscriber: It represents a consumer of an event from a publisher. For that, it will subscribe to the publisher.
Subscription: This interface illustrates the process of subscribing or registering of a subscriber to a publisher.
Processor: It is a composition of both the publisher and subscriber. It represents a processing stage that implements the contract of both.