5 exercises on the adverbs that describe how systems fail and recover — essential vocabulary for post-mortems, runbooks, and distributed-systems design documents.
Key verb–adverb patterns in this set
fail fast — detect and surface errors immediately; stop before propagating bad state
degrade gracefully — continue in reduced-capacity mode when a component is unavailable
restart cleanly — return to known-good initial state; clear in-memory state
alert automatically — monitoring rule fires without human intervention
0 / 5 completed
1 / 5
A startup engineering blog post argues for a particular design philosophy:
"We embrace a '___ fast' culture. If a request cannot be completed safely, we return an error immediately rather than attempting partial execution that could leave data in an inconsistent state."
Which adverb completes the well-known software design principle?
Fail fast is a foundational software design principle: detect errors as early as possible and stop immediately rather than continuing in an uncertain or invalid state.
The principle was popularised by Jim Shore and is widely applied in:
fail fast — constructor throws if arguments are invalid (rather than allowing bad state to propagate)
fail fast in CI — run unit tests before integration tests; abort the pipeline at the first failure
fail-fast iterators — Java collections throw ConcurrentModificationException immediately if modified during iteration
Contrast: fail silently (the worst pattern — no indication of failure) vs. fail fast (loudly and immediately). "Fail loudly" is used informally but is not the established term of art. "Fail safely" means the system reaches a safe state on failure (e.g., fail-safe locks default to closed) — a different concept. "Fail cleanly" is used for graceful resource cleanup — also different.
2 / 5
An API design document describes error-handling requirements for a payment gateway:
"Under overload conditions, the service must ___ — it should continue processing a reduced feature set (basic payment confirmation only) and queue non-critical operations rather than returning HTTP 500 to all callers."
Which adverb describes a failure mode where reduced functionality is maintained?
Degrade gracefully — also written as graceful degradation — means the system continues to operate in a reduced-capacity mode rather than failing completely when a component or resource is unavailable.
This is a critical resilience pattern:
degrade gracefully — serve cached data when the DB is slow; disable search when Elasticsearch is down
fail gracefully — slightly different: the system stops, but releases resources cleanly and logs useful diagnostics
degrade gracefully under load — shed non-essential work (e.g. analytics writes) to protect the critical path
Real-world examples: Netflix disabling recommendations when the recommendation engine is down; an e-commerce site hiding personalisation but still processing checkout. "Fail silently" is the worst pattern — no output, no indication. "Recover automatically" describes what happens after a failure, not behaviour during one. "Respond immediately" is about latency, not resilience.
3 / 5
A runbook entry for a third-party API integration states:
"The HTTP client is configured to retry ___ with jitter. The first retry waits 1 second, the second waits 2 seconds, the third 4 seconds, the fourth 8 seconds — up to a maximum of 60 seconds."
Which adverb describes this specific backoff pattern?
Retry exponentially refers to exponential backoff — a retry strategy where the wait time between attempts doubles (or grows by a fixed multiplier) with each failure.
This is the standard retry strategy for distributed systems:
exponential backoff with jitter — adds randomness to prevent thundering herd (all clients retrying simultaneously)
AWS SDK, Google Cloud client libraries, and most HTTP retry libraries implement this by default
Key collocation in code: retryWithExponentialBackoff(), exponential_backoff_retry. "Retry immediately" means zero wait — appropriate only for idempotent operations with very low failure rates. "Retry periodically" implies a fixed interval (e.g. every 30 seconds) — a different pattern called fixed-interval polling. "Retry gradually" is not a standard technical term.
4 / 5
A Kubernetes liveness probe configuration comment explains:
"If the probe fails three consecutive times, Kubernetes will ___ the container. The pod will then go through the normal initialisation sequence and rejoin the service mesh."
Which adverb correctly describes a restart that returns the process to its initial clean state?
Restart cleanly means the process terminates and restarts from a known-good initial state — all in-memory state is cleared, open connections are closed, and the process begins its startup sequence fresh.
shut down cleanly — graceful shutdown before a deploy; drain in-flight requests
clean restart (noun form) — used in runbooks: "perform a clean restart of the nginx worker"
The adverb "cleanly" is the key signal — it implies the opposite of a dirty restart (crash, OOM kill, SIGKILL) where state is left in an inconsistent position. "Restart automatically" is also true in this context (Kubernetes does it without human action) but "automatically" describes the trigger, not the quality of the restart. The question asks about the character of the restart, not who/what initiates it.
5 / 5
An incident post-mortem action item reads:
"Add PagerDuty integration so that the on-call engineer is ___ alerted when the 99th-percentile latency on /checkout exceeds 2 seconds for more than 3 consecutive minutes."
Which adverb means the alerting happens without anyone having to check manually?
Alert automatically means the alerting system detects the condition and sends the notification without any manual intervention — a monitoring rule or threshold triggers the page.
Key distinctions in observability vocabulary:
alert automatically — a Prometheus AlertManager rule, Datadog monitor, or CloudWatch alarm fires a PagerDuty page without a human watching a dashboard
notify automatically — Slack webhook fires when a deployment completes
detect automatically — anomaly detection triggers without a fixed threshold
"Alert immediately" describes the latency of the alert (no delay) — the question asks about the mechanism (automated vs. manual), not speed. "Alert proactively" means alerting before users are impacted — possible but the sentence is specifically about an automation mechanism. "Alert loudly" is informal and not a technical term in monitoring. In observability, the full pattern is: detect automatically → alert automatically → escalate automatically if unacknowledged.