A couple of jargon terms, decoded
- Cold start — When code hasn't run in a while, the platform has to wake it up. That first request is slower (a fraction of a second to a few seconds). functions barely have this; functions sometimes do; always-on containers and VMs don't. For most apps this is invisible; for a snappy checkout flow it can matter.
- Scaling — Handling more users without falling over. Automatic scaling means the platform adds capacity for you. Manual scaling means you click buttons or it just breaks under load. "Scales to zero" is a related phrase you'll see a lot: when no one's using your app, it costs nothing.
- State — Data that needs to stick around (a , uploaded files, a user ). Static and serverless layers are often "stateless" — they forget everything between requests — so state lives in a separate database or storage service. This is why almost every real app is "your hosting plus a database somewhere," not one magic box.
- Region — Which part of the world your code and data physically sit in. It affects speed (closer is faster) and sometimes the law (some data must stay in a specific country). For a first project, pick the region nearest your users and move on.
Here is the request's whole journey, and where each piece lives. The browser talks to a nearby edge, which serves cached files or wakes up your code, which reaches out to the database for anything it must remember:
┌─────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────┐
│ BROWSER │ ───▶ │ EDGE / CDN │ ───▶ │ SERVER CODE │ ───▶ │ DATABASE │
│ user │ │ near user │ │ function/box │ │ state │
└─────────┘ └──────────────┘ └──────────────┘ └──────────┘
▲ │ │ │
│ cache HIT │ stateless │ remembers │
└──────────────────┘ (forgets between │ things │
fast reply requests) ◀───────┘ ◀─────────────────┘