Lambda 1,000 concurrency and Sume webhook bursts finishing together
Jobs from one bulk queue often finish together. Lambda starts at 1,000 concurrent executions, lower on new accounts. Here is how Sume's retries absorb a burst.

Lambda's default quota is 1,000 concurrent executions per Region, lower on new accounts, and a bulk queue of Sume runs can deliver dozens of webhooks in the same minute. Sume treats any non-2xx or timeout as a failed attempt and retries up to 10 times, so a briefly throttled receiver recovers, but only if you store events and answer fast.
What are Lambda's concurrency numbers?
The Lambda quotas page lists a default of 1,000 concurrent executions, raisable to tens of thousands, and notes that new AWS accounts have reduced concurrency and memory quotas that AWS raises automatically with usage. Each function can scale by 1,000 execution environments every 10 seconds. For synchronous invocation, each environment serves up to 10 requests per second.
A webhook receiver is a synchronous invocation, so those synchronous numbers apply.
| Quota | Value |
|---|---|
| Concurrent executions (default) | 1,000, raisable |
| New accounts | Reduced until usage grows |
| Scaling per function | 1,000 environments every 10 seconds |
| Sync requests per environment | 10 per second |
| Max function timeout | 900 seconds |
How big is a Sume burst?
A bulk run holds up to 100 items with a concurrency window of 1 to 16, so no more than 16 children run at once and finish times spread out. But jobs with the same duration that started together can end together, and several queues or schedules can align on the hour.
Each child with a webhook_url sends one terminal POST. Even 100 in one minute is under two per second, nowhere near 1,000 concurrent executions. The real risk is a slow handler: at 10 seconds per attempt, slow executions hold slots and trip the timeout.
What does Sume do when the receiver says no?
Per the docs, success is any 2xx. Network errors and non-2xx responses are retried until attempts are exhausted: up to 10 attempts, a 10-second timeout each, and redirects are not followed. Job webhooks use a fixed delay between attempts, 30 seconds by default; run webhooks back off from 30 seconds, doubling with jitter up to an hour, and honour Retry-After on 429 or 503.
So a short throttle costs you a delayed event, not a lost one. A long outage past ten attempts leaves the job or run complete and the delivery failed; recover with the status endpoints or Redeliver.
How do I keep handlers fast?
Do the minimum before answering: verify the signature, write the event keyed by request_id, return 204. Put everything else behind a queue. An empty secret must refuse the request, so the sample fails closed.
The verifier below is plain Node and checks the multi-signature header used during secret rotation.
import crypto from "node:crypto";
export function verify(raw: string, ts: string, header: string, secret: string): boolean {
if (!secret) return false; // never verify against an empty secret
const t = Number(ts);
if (!Number.isFinite(t) || Math.abs(Date.now() / 1000 - t) > 300) return false;
const want = Buffer.from(
"sume-v1=" + crypto.createHmac("sha256", secret).update(`${t}.${raw}`).digest("hex"),
);
let ok = false;
for (const part of header.split(",")) {
const got = Buffer.from(part.trim());
if (got.length === want.length && crypto.timingSafeEqual(got, want)) ok = true;
}
return ok;
}What should I watch?
Watch for throttling and duration on the receiver, and compare with webhook_delivery on the run or job: its attempts and status show how many tries Sume spent. If a burst does throttle you, request a higher concurrency quota in the Service Quotas console, which is how Lambda says you can change the default.
Sume does not see your Lambda metrics and does not slow its deliveries to match your quota; the retry schedule is the only pacing it applies.
Sources
Related posts
More in Integrations
- Lambda async 1 MB limit vs Sume's 1 MiB run webhook overflow
Lambda takes 1 MB for async events and 6 MB sync. Sume sends a run webhook inline up to 1 MiB, then payload null. Forward the id, not the receipt.
- langchain-mcp-adapters is archived: what changes for Sume
langchain-mcp-adapters was archived on Sept 17, 2026 and MCP moved into LangChain as langchain[mcp]. What to re-check when the server is Sume's hosted MCP.
- Letta MCP server: register Sume with mcp_servers.create
Register Sume's hosted MCP in Letta with mcp_servers.create, the streamable_http type and an Authorization token, then attach its tools to an agent by id.
- Lightroom Prompt to Edit runs on Nano Banana: batch edits by API
Adobe's Lightroom v9.6 adds Prompt to Edit, powered by Nano Banana. To run the same kind of prompt edit over many photos, send them to Sume's image edit API.
Written by Sume