Well I didn't think a callback was needed at all until your request counter example. Failure and success are results from the HTTP call whereas cancellation is an explicit action. I can update the callback invocation to happen on the callback executor--that's a good catch. Maybe we should talk about this offline to get a clear direction of what's needed.