Sorry, my mental picture of that isn't quite clear ... is the RingBuffer the source of the data, or where you're buffering it in the Subscriber?

If in the Subscriber, the `Subscription.request` will never be larger than slots available in the ring so it would never overflow.

If in the Publisher, then the `Subscription` would represent the reader (tail pointer) that is following the head as it receives requests via `request(n)`.

>  if no slots were available, then that would be the situation where one would need to apply back pressure

I don't see in our model how we'd find out we need to apply back pressure once no space. We are requesting up front with a known amount so we should never hit a scenario where we "run out".