RELIABILITY · REQUEST WORKSHOP

Backpressure: watch pause and resume signals

Fill the waiting room, watch workers process real model requests, and inspect every admission decision.

Bounded FIFO · deterministic replay60 model seconds
Completed0
Pending0
Rejected0
Held back0

Your experiment

Increase demand above worker capacity. Locate the high-water pause and low-water resume events. What happens if the producer ignores them?

  1. Play the default run and inspect the queue.
  2. Pause and capture a baseline.
  3. Change one parameter, then compare the same model time.
  4. Account for every offered unit: completed + pending + rejected + held back.

Admission trace

Teaching model, not an ADK/A2A runtime or measured infrastructure benchmark. Fixed service time, one FIFO, no retries, deadlines or network overhead; 50 ms ticks. Backpressure pauses a cooperative producer at 75% queue occupancy and resumes at 25%. Held-back demand is not transmitted or retained for later delivery. Early shedding uses half of queue capacity. Token bucket admission consumes one token per request, including requests subsequently rejected by the queue. The local Retry-After illustration is not a protocol-wide guarantee. Throttling reference · Load shedding reference.

Observe the pause and resume conditions

The producer has two states: sending and paused. In backpressure mode it pauses when the waiting queue reaches the high-water threshold and resumes when that queue falls to or below the low-water threshold. These decisions occur at a model-step boundary, not through a real remote signal. The high threshold is floor of seventy-five percent of queue capacity, at least one; the low threshold is floor of twenty-five percent. The gap between them creates hysteresis so the producer does not toggle at one shared threshold.

Set the actual admission controls

Admission policy selects bounded FIFO, producer backpressure, token bucket plus FIFO, or early load shedding. Desired requests per second creates evenly accumulated demand. Worker slots limits concurrent service. Service seconds per request fixes each job duration. Queue capacity bounds waiting jobs, excluding active workers. Bucket refill and token capacity apply only in token-bucket mode; the initial bucket is full. A token is spent before the queue-capacity check, so passing the limiter does not guarantee admission. Early shedding uses half the configured queue capacity, rounded down with a minimum of one. Policy changes rebuild the complete run and start playback unless reduced motion is requested.

Reproduce a full signal cycle

Set capacity sixteen with twelve desired requests per second, three workers and one-second service. The high mark is twelve waiting jobs and the low mark is four. Play or scrub until the source indicator reads PAUSED, then step forward and watch workers drain the queue until sending resumes. At capacity four the marks become three and one; the shorter buffer produces more frequent cycles. Set desired demand to two per second: there is no sustained overload, and the event panel remains empty in this scenario. A quiet signal log therefore needs workload context, not an assumption that signaling is broken.

Test what a signal does not guarantee

Switch to bounded FIFO and the producer never pauses; overload is expressed as rejected requests once the queue fills. Token-bucket mode can reject before queue admission and can still encounter queue overload afterward. The event panel retains only its latest twelve messages, whereas counters cover the full horizon. High-water decisions are sampled before the step admits new arrivals and dispatches queued jobs; a large per-step arrival burst can overshoot the high mark before the next decision. Do not interpret this exercise as a promise of zero overflow for every parameter combination, or as an implementation of a specific ADK backpressure wire protocol.

Inspect the modeled horizon

Play and Pause control the sixty-second run; Step plus one second advances twenty fifty-millisecond model steps; Restart recomputes the same inputs at the beginning; Speed changes viewing pace; Inspect the run scrubs the recorded states. The preview describes the final horizon even while the canvas is at an earlier time. Queue cells and worker boxes carry real request identifiers. No HTTP request, Java agent or A2A connection is executed. The model has fixed service times, quantized scheduling and no retries, distributed pause acknowledgements, client deadlines or upstream buffering. Held-back demand is counted but never replayed later; it is not a durable backlog or evidence of eventual completion.

Views are my own and do not represent any employer, past or present.