Auto-scaling
Let a control loop add and remove capacity in response to live demand — so you pay for load you actually have, not load you might one day see, and the system rides out spikes without a human awake to notice.
Not another patterns glossary. Each entry tells you when the pattern is the wrong choice, walks through working code, and links a live demo — so you can judge it before you bet a quarter on it.
Let a control loop add and remove capacity in response to live demand — so you pay for load you actually have, not load you might one day see, and the system rides out spikes without a human awake to notice.
Run two identical production environments, deploy to the idle one, and cut over by flipping a router — so release and rollback are a single instant switch, and the database migration is the part that actually bites.
Lazy-load data into a cache the application controls, keep the database as source of truth, and treat invalidation as the hard part — the stampede and the stale-write race — with a correct TypeScript loader.
Put a durable buffer between the work and the workers: producers enqueue a task and move on, a pool of competing consumers pulls each task once, and the queue absorbs the spike neither side could survive alone.
Hand the provider your code and the event that triggers it: they run it on demand, bill per invocation, and scale to zero when idle — so you own the business logic and none of the servers under it.
How services find each other when instances come and go. Client-side vs. server-side discovery, the registry as source of truth, and why health checking is the hard part — with a correct TypeScript client-side resolver.