Lambda concurrency is the number of function instances running simultaneously. Understanding concurrency is crucial for designing reliable serverless architectures that do not overwhelm downstream services.
| Type | Description | Use Case |
|---|---|---|
| Unreserved | Default — shares pool with all other functions in account | Most Lambda functions |
| Reserved | Guarantee N instances for this function — steals from others | Critical functions that must never be throttled |
| Provisioned | Pre-warm N instances — always ready, no cold starts | Latency-sensitive functions |
Default Lambda concurrency limit per region: 1,000 concurrent executions
If 10 functions each run 100 instances:
Total: 1,000 (at limit)
If function A needs 900 instances (traffic spike):
Only 100 left for all other functions!
Risk: other functions throttled
Solution: Use Reserved Concurrency
Reserve 200 for function A (max it can use)
Leave 800 for other functions
Function A cannot steal from others
When Lambda is throttled:
Synchronous invocation (API Gateway):
--> Returns 429 Too Many Requests immediately
--> Client must retry with backoff
Asynchronous invocation (S3, SNS):
--> Lambda retries automatically (up to 6 hours)
--> Failed events go to Dead Letter Queue (DLQ) or Lambda Destination
# Reserved concurrency = 0 means function is completely disabled
# Useful for: emergency disable without deleting function
aws lambda put-function-concurrency
--function-name my-function
--reserved-concurrent-executions 0 # Throttles ALL invocations