If you have, say, 1GB of memory and each request consumes 1K, you know
that channel size must be no larger than 1e6. Otherwise the process
will either die immediately (good case) or cause swapping (bad case).
Also you need buffering only to (1) achieve better performance and (2)
handle spikes. Channel of size 1000-10000 is usually enough for this.
There is no reason to see how the channel grows to 1e6 until you start
throttle. If a system steadily can't keep up with load, you have to
drop, nack, ask to resend later, flush to db or whatever.
There is no magical way how the system can sustain infinite number of
request and free you from solving the overload problem.