What serverless delivers
- No server management — no patching, no capacity planning for idle workloads.
- Auto-scaling to zero — you pay nothing when no requests are in flight.
- Event-driven triggers — S3 upload, SQS message, API Gateway request, schedule.
Cold starts
The first invocation after idle requires initialising the runtime container. Cold start latency: ~100ms for Python/Node, ~500ms–1s for JVM languages. Mitigations: provisioned concurrency (keep containers warm), lighter runtimes, smaller deployment packages.
Good serverless use cases
- Event processing (file upload → transform → store).
- Scheduled jobs (nightly reports, cleanup tasks).
- Webhooks — sporadic, bursty traffic.
- API backends with uneven traffic (high during business hours, zero overnight).
When serverless struggles
- Long-running jobs (Lambda has 15-minute max).
- Persistent connections (WebSockets require special handling).
- High-throughput steady load — containers are cheaper when you need constant concurrency.