Source, archive, and restore rehearsal connected in a recovery loop.

Backups are only useful after a restore rehearsal

Choose a small recovery unit, verify it, and practice restoring it somewhere disposable.

August 22, 2026 · 2 min · XB Field Notes
DNS nodes surrounding a time-to-live cache dial.

DNS changes need a cache-aware rollback window

Prepare the TTL ahead of time, observe authoritative and recursive answers, and keep both endpoints valid through the cache window.

August 22, 2026 · 2 min · XB Field Notes
An old URI permanently redirected to a new URI with status 308.

Redirects and error codes should preserve the story

Check the method, Location header, and cache behavior before choosing a redirect or an error status.

August 22, 2026 · 2 min · XB Field Notes
A strong default path with quieter fallback and recovery branches.

Reliable defaults beat clever recovery

Keep the common path explicit, observable, and safe to repeat before adding recovery branches.

August 22, 2026 · 2 min · XB Field Notes
A service inside a bounded and rate-limited restart loop.

Restart policies need a rate limit

Use an explicit service type, bounded restart behavior, and start-rate limits that leave evidence in the journal.

August 22, 2026 · 2 min · XB Field Notes
A crawler icon beside a branching sitemap structure.

robots.txt and sitemaps answer different questions

robots.txt is a crawler-facing preference; a sitemap is a URL inventory; neither is an authorization layer.

August 22, 2026 · 2 min · XB Field Notes
A recorded SSH host fingerprint connected to a key symbol.

SSH host keys are part of the deployment record

Record the expected fingerprint, use a deliberate StrictHostKeyChecking policy, and treat changes as an incident until explained.

August 22, 2026 · 2 min · XB Field Notes
A compact service core connected to DNS, TLS, files, and logs.

The advantage of small systems

Small does not mean unfinished; it means each boundary has a clear job and a visible owner.

August 22, 2026 · 2 min · XB Field Notes