Reloading config without a restart
Hot-reloading configuration: watch the file, re-read it, swap it in atomically and notify observers, without restarting a long-running service.


Hot-reloading configuration: watch the file, re-read it, swap it in atomically and notify observers, without restarting a long-running service.

A checksum hosted beside your download stops accidents, not a compromised platform. Why the signing key has to live somewhere you control.

A vulnerability scanner is a one-day yes or no. Running cargo-deny as a standing policy gate instead, with waivers that expire on a date.

Go functional options enforce required fields at runtime, if at all. A Rust typestate builder refuses to compile when you forget one.

A flaky self-update test: separate processes still shared a computed cache path and raced on disk. Process isolation is not filesystem isolation.

Rust has no init or pre-main phase, so self-registering commands need another mechanism. Using a distributed slice to get the same shape.

Self-update integrity for a CLI: verify the downloaded binary against the release checksums file, and decide whether to fail open or closed.

A Rust gotcha: non_exhaustive promises an enum can grow, but returning a fixed-size array bakes today count into the type. Both cannot be true.

Porting a Go framework to Rust separates design from idiom. Which decisions survived the move, which were habits, and how to tell them apart.

Making OS-keychain support provably absent from a Go binary for regulated or air-gapped builds, using a registry and a blank import.
