Confirmed problem
After strategy generation, all selected destinations launch together with Promise.all. With twelve destinations and one revision attempt per channel, a campaign can create up to 25 provider requests in a concentrated burst, risking rate limits, high cost, inconsistent latency, and serverless timeout failure.
Scope
- Split destination generation into independent requests.
- Add a client/server generation queue with a default concurrency of two.
- Support provider-specific and local-model concurrency limits.
- Give long-form destinations a separate lane or scheduling policy.
- Add cancellation through campaign-level and request-level abort controllers.
- Record request count, duration, retries, provider/model, and destination status.
Acceptance criteria
Required verification
- Concurrency tests measuring maximum simultaneous calls.
- Partial failure, cancellation, timeout, and long-form tests.
- Provider capability tests for hosted and local routes.
Confirmed problem
After strategy generation, all selected destinations launch together with
Promise.all. With twelve destinations and one revision attempt per channel, a campaign can create up to 25 provider requests in a concentrated burst, risking rate limits, high cost, inconsistent latency, and serverless timeout failure.Scope
Acceptance criteria
Required verification