A subscription is a mediator between the publisher and subscriber. It is the subscriber's responsibility to invoke the Subscription.subscriber() method and let the publisher know of the demand. It can be invoked as and when required by the subscriber. The cancel() method asks the publisher to stop sending data notifications and to clean up the resources.