Skip to main content
Batch handlers reduce per-call overhead without changing job durability. Each member keeps its own payload, lease, fence, timeout, deadline, retry and crash counters, checkpoint, result, logs, and terminal state.
The result list is positional and must contain exactly one result per input. One member may succeed while another retries; a batch call is a shared execution optimization, not a shared durability fate.

Flush behavior

  • reaching max_size flushes immediately;
  • max_delay is measured from the first waiting member, so steady traffic cannot postpone a batch forever;
  • a panic is isolated and converted into a retry result for every affected member;
  • admission accounting still charges rate limits, fairness, and concurrency per member.
This is execution batching. It does not replace multiple enqueued jobs with one synthetic job, and it is separate from workflow fan-out and fan-in.