Should be token-based a la reactive streams. Although it also seems that maybe we will only ever have at most 1 token passed to the application. Currently we provide no method of pushback to the application and buffer infinitely as the application sends.