Technical
Serverless Cold Starts Are Still Your Real Bottleneck
Every team I audit underestimates cold starts. They see the median latency in their dashboard and think they are fast. Then a low-traffic endpoint gets hit, takes four seconds, and loses the customer. In 2026 serverless cold starts are still the bottleneck most teams are ignoring. Here is how I find and fix them without rewriting everything.
The Detection Step
You cannot fix what you cannot see. The first move is separating cold-start latency from warm latency in your metrics. Both AWS Lambda and Vercel Functions emit cold-start markers. Filter on them. If your dashboard only shows a single latency line, you are flying blind on the exact problem that kills conversion.
The Usual Suspects
- Heavy dependency graphs (full SDKs instead of modular clients)
- Synchronous init code outside the handler
- Large container images for Lambda container deployments
- Missing provisioned concurrency for critical paths
- Database clients that block on first call instead of lazy-connecting
Most cold start problems come down to one of these five. Work through them in order.
The Fix Pattern
// Bad: heavy init on every cold start
const client = new BigSDK({ /* ... */ });
// Better: lazy init with memoization
let client;
const getClient = () => client ??= new BigSDK({ /* ... */ });The lazy pattern means the init cost is paid once per container on first use, not on every cold start before any request is handled. It sounds small. It consistently cuts cold start time by 30 to 60 percent on real projects.
When to Buy Instead of Build
For endpoints under 100 requests per minute, provisioned concurrency costs more than it saves. For endpoints over that threshold, it pays for itself instantly. Know your threshold. Most teams overspend on provisioned concurrency by applying it uniformly instead of targeting the hot paths.
The Observability Investment
Tag every cold start event. Count them by endpoint. Set alerts when the cold start ratio crosses a threshold. Without this, cold starts regress silently with every new dependency you add. The AWS Lambda performance guide has current numbers if you need to build the business case internally.
The Mental Model
Cold starts are a tax on unpredictable traffic. You either pay the tax at request time (bad UX) or pre-pay with provisioned concurrency (bad bill). The third option, keeping cold start time minimal through lazy init and lean deps, is the only one that scales without tradeoffs.
RELATED READING
The Consulting Shift I Am Making In Year Two
After a year of writing and building, my consulting practice is changing shape. Shorter engagements. Sharper outcomes.
ReadThe Frontend Shift: Shipping Less JavaScript In Year Two
A year ago I reached for Next.js for everything. This year I often reach for nothing.
ReadThe Serverless Lesson I Would Write On A Sticky Note
After a year of shipping serverless projects, one rule explains most of the wins and all of the losses.
Read