Skip to content

Commit 8ce96c3

Browse files
committed
docs(webapp): trim parallel-batch-item-ingest server-changes note
1 parent 5f3b930 commit 8ce96c3

1 file changed

Lines changed: 1 addition & 15 deletions

File tree

.server-changes/parallel-batch-item-ingest.md

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,4 @@ area: webapp
33
type: improvement
44
---
55

6-
Phase 2 streaming batch ingest (`POST /api/v3/batches/:batchId/items`) now processes
7-
items with bounded concurrency instead of strictly sequentially. Previously each item's
8-
payload offload + enqueue ran one at a time, so batches of many large payloads (each
9-
offloaded to object storage) could take minutes and blow past Node's default 300s
10-
`server.requestTimeout`, surfacing to the SDK as `408 terminated` and burning ~26 min
11-
across the SDK's 5 retries.
12-
13-
Ingestion now uses `p-map` over the NDJSON stream with a configurable concurrency
14-
(`STREAMING_BATCH_INGEST_CONCURRENCY`, default 10), which pulls lazily so at most
15-
`concurrency` items are in flight — bounding peak memory to roughly
16-
`concurrency × STREAMING_BATCH_ITEM_MAXIMUM_SIZE`. Set it to 1 to fall back to fully
17-
sequential ingestion. Ordering and idempotency are unaffected (run order derives from
18-
each item's index, and `enqueueBatchItem` dedups atomically per index); the NDJSON
19-
parser now stamps oversized-item markers with their emit position so the consumer no
20-
longer depends on processing order. Sealing/idempotency behaviour is unchanged.
6+
Streaming batch ingest now processes items with bounded concurrency instead of one at a time, so batches of many large payloads ingest far faster and no longer time out. Concurrency is configurable via `STREAMING_BATCH_INGEST_CONCURRENCY` (default 10); set it to 1 for fully sequential ingestion.

0 commit comments

Comments
 (0)