SECTION 0 — RELIABILITY IS DESIGNING FOR NORMAL FAILURE
Production is partial failure:
-
timeouts
-
dependency brownouts
-
retries
-
backpressure
Senior fullstack means the UI and backend cooperate to fail safely.
SECTION 1 — TIMEOUTS + RETRIES + BACKOFF (THE TRINITY)
Rules:
-
always set timeouts
-
retry only idempotent operations (or make them idempotent)
-
exponential backoff + jitter
Avoid:
- synchronized retries (retry storm)
SECTION 2 — CIRCUIT BREAKERS + BULKHEADS
-
circuit breaker stops calling a failing dependency
-
bulkheads isolate resources so one failure doesn’t sink the system
UI equivalent:
- degrade features instead of blocking the whole app
SECTION 3 — RATE LIMITING + BACKPRESSURE
-
apply limits per user/tenant
-
protect expensive endpoints
-
apply queue depth limits
Signal backpressure clearly:
-
429with retry-after -
typed error response
SECTION 4 — POISON MESSAGES + DLQs
Async systems must assume:
-
malformed payloads
-
unprocessable messages
-
repeated failures
Pattern:
-
limited retries
-
then DLQ
-
then replay tooling
Worker rule:
Consumers must be idempotent because delivery is at-least-once.
SECTION 5 — ROLLOUTS THAT DON’T HURT
-
feature flags
-
canary deployments
-
progressive delivery
-
fast rollback
Senior rule:
Rollback is part of the design, not an emergency improvisation.
SECTION 6 — EXERCISES
-
Identify endpoints that must be idempotent and how you’ll guarantee it.
-
Design a retry policy (backoff + jitter) for a flaky dependency.
-
Define DLQ rules and replay process.
-
Write a rollout plan for a risky change.