Skip to content

Tag

#Architecture

DevOps 5 min read

Metrics, Traces, Logs: OpenTelemetry in Anger

Three signals and the different questions they answer, the trace-ID join that delivers 80% of the value, the collector pattern, tail-based sampling that keeps the interesting 100%, and the incident-driven rollout.

DevOps 4 min read

Feature Flags: Deploy Is Not Release

The four flag species and why conflating them causes misery, sticky percentage rollouts with one decision point, the staged rollout playbook with observability hooks, and the hygiene that prevents flag archaeology.

Backend 5 min read

The Caching Stack: From Browser to Buffer Pool

Five layers walked top to bottom — browser headers, CDN edge with its famous incident, Redis with a job description, database-adjacent options — plus the staleness grid that makes TTLs a product decision.

Backend 4 min read

GraphQL: An Honest Take After the Hype Cycle

The specific problem it solves brilliantly, the five bills itemized — resolver N+1s, forfeited HTTP caching, query-surface DoS, field-level auth, the toolchain — and the BFF alternative most teams actually need.

Backend 5 min read

One Notification System to Rule Every Channel

Intent vs delivery as the founding seam: a typed notification catalog, a preference engine that resolves instead of looks up, queue-per-channel adapters, digesting, and the build order that avoids the rewrite.

Realtime 5 min read

Scaling WebSockets Past One Box

Sockets are tenants, not confetti: the pub/sub backplane, stateless nodes and rolling drains, the reconnect stampede and its jittered cure, missed-message recovery by data shape, and the capacity cliffs to test first.

Backend 4 min read

API Versioning Without the Regret

The ladder from additive changes to real versions: tolerance rules that make 90% of changes free, deprecated-field telemetry, Sunset headers, brown-outs, and the internal-API discount.