Batch
Fan-out to 1M+ containers with retries + DLQ, iterators + collectors, concurrency caps. $0.23 per 1M CPU calls.
What it is
Batch is the fan-out product. Map a callable over a (potentially huge) iterable and collect results. Built-in retries, dead-letter queue, per-tenant concurrency caps. Used for ETL, eval runs, document processing, dataset generation.
When to use it
- Process 10M documents through a model in a few hours.
- Run a batched eval over your test set.
- Backfill embeddings for a 100M-row dataset.
Quickstart
asc batch submit embed-docs --image my/embed:latest --inputs-file s3://my/inputs.jsonl --concurrency 200 --retries 3client.batch.submit(
name='embed-docs',
image='my/embed:latest',
inputs_uri='asc://my/inputs.jsonl',
concurrency=200,
retries=3,
dlq='embed-dlq',
)await client.batch.submit({ name: 'embed-docs', image: 'my/embed:latest', inputsUri: 'asc://my/inputs.jsonl', concurrency: 200, retries: 3, dlq: 'embed-dlq' });Limits & quotas
| Limit | Default | Burst | Notes |
|---|---|---|---|
| Per 1M CPU calls | $0.23 | — | |
| Max concurrency | 10,000 | 100,000 | Lift via sales |
| Max retries | 10 | — | Per item |
| DLQ retention | 14 days | — |
Pricing
See pricing. Pay-as-you-go, billed monthly via Stripe.
API surface
POST /v1/batch/jobsGET /v1/batch/jobs/{id}/items
Required scope(s): pods:write. See Scopes.
Security
All access is authenticated and scoped. See Auth & scopes and Network controls.