01 / DECIDE
Architecture decision
Use it for offline evaluation, classification, enrichment, or large queues that do not require interactive latency.
Batch work needs stable custom identifiers, immutable input manifests, per-item status, result reconciliation, and bounded replay. Map input, output, state, and side effects as one observable path before deciding which layer owns move tolerant workloads to batch processing.
02 / BUILD
Three-step implementation
- 01
Frame the contract
Write down the caller, data classification, success condition, timeout, cancellation, and ownership. Use it for offline evaluation, classification, enrichment, or large queues that do not require interactive latency.
- 02
Build one narrow path
Implement one end-to-end path with request correlation, typed state, and reversible failure handling. Batch work needs stable custom identifiers, immutable input manifests, per-item status, result reconciliation, and bounded replay.
- 03
Prove the outcome
Turn acceptance into a repeatable fixture, contract test, or browser test. Reconciliation proves every input is succeeded, failed, cancelled, or explicitly pending with no silent loss.
03 / BOUND
Production boundary
Do not submit unbounded sensitive datasets; define retention, encryption, cancellation, and partial-result policy first.
04 / PROVE
Acceptance evidence
Reconciliation proves every input is succeeded, failed, cancelled, or explicitly pending with no silent loss.
SOURCE / HTTP
Reproducible source probe
curl -fsSI 'https://developers.openai.com/api/docs/guides/batch' | sed -n '1,5p'