Failing fast and clearly.
WHAT TO DO FIRST
Validate every required setting.
WHY
Failing immediately with a clear message beats failing mysteriously an hour later.
WHAT TO CHECK
Required variables present Values within expected ranges Files that must exist Dependencies reachable, where genuinely required
WHAT TO BE CAREFUL WITH THAT LAST ONE
Refusing to start because a dependency is down.
WHY
It turns a brief outage into a cascade, since nothing can start.
WHAT TO PREFER
Starting, reporting not ready, and retrying.
WHAT THAT ACHIEVES
Recovery without intervention when the dependency returns.
WHAT TO LOG AT STARTUP
Version Which configuration was loaded Which dependencies were resolved
WHAT NEVER TO LOG
The secret values themselves.
WHAT TO EXPOSE
A readiness endpoint reflecting actual state.
WHAT TO AVOID
Defaults that are safe locally and dangerous in production.
WHAT EXAMPLES LOOK LIKE
Debug mode enabled Permissive origins A development database address
WHAT TO DO INSTEAD
No default for anything security-relevant, so absence fails loudly.
WHAT TO MAKE FAST
Startup itself.
WHY
Slow startup makes scaling sluggish and probes fragile.