Комментарии 8
Back pressure выглядит как подтип high load.
CircuitBreaker разве не поможет в этой ситуации? И можно не усложнять интерфейс для пользователей.
CircuitBreaker не будет работать если вы не знаете текущую загруженность. А вы её и не узнаете если упустите давление.
Размер очереди разве не индикатор? Время отклика? В зависимости от сервиса возможно даже доступность свободных ресурсов. Я не критикую - спрашиваю.
У вас не будет никакого размера очереди если вы напишете код неправильно — за отсутствием самой очереди. И время отклика вы померить тоже не сможете если код будет возвращать управление слишком рано.
Как вы можете вернуть управление слишком рано, если у вас нет очереди? Не понимаю.
Где-то очередь, скорее всего, есть — но в случайном месте, и без данных о размере.
Посмотрите примеры из статьи ещё раз — в одном случае очередь "стихийно" образовалась в буфере отправки, в другом прячется в продолжениях операции acquire семафора. И если во втором случае можно хотя бы время отклика посчитать — то в первом даже эта информация оказывается скрыта, размер же недоступен в обоих случаях.
Чтобы иметь возможность принимать решения на основе размера очереди и времени отклика — нужно сначала "прокинуть" обратное давление непосредственно до того кода, который организует очередь и измеряет время отклика.
Я не чувствую давления async