βWhile remaining demand is zero, the Publisher sends no additional data elements. New requests use a positive number; request(0) is invalid, not a pause command. Completion and error are separate signals from data elements, so they may be delivered even when no demand remains. Specification rules 1.2 and 3.9.
Java 9 also provides Publisher, Subscriber, Subscription, and Processor through java.util.concurrent.Flow. Its documentation describes these interfaces as corresponding to Reactive Streams. Library authors must match the contracts for demand, cancellation, and termination as well as the method for sending data if their components are to connect. Java 9 Flow, Subscription contract.
+While remaining demand is zero, the Publisher sends no additional data elements. New requests use a positive number; request(0) is invalid, not a pause command. Completion and error are separate signals from data elements, so they may be delivered even when no demand remains.[Footnote 7]
Java 9 also provides Publisher, Subscriber, Subscription, and Processor through java.util.concurrent.Flow. Its documentation describes these interfaces as corresponding to Reactive Streams. Library authors must match the contracts for demand, cancellation, and termination as well as the method for sending data if their components are to connect.[Footnote 8]