Crisphollow

Crisphollow

Practical engineering writing for people who keep systems alive.

Data

Cache Invalidation Patterns That Survive Traffic

August 25, 2026

Everyone quotes the two hard things joke; fewer people ship caches engineered against stampede. The pattern that matters most is request collapsing: when a hot key expires, exactly one worker rebuilds while everyone else serves slightly stale data, which turns a cache miss from a database incident into a mild slowdown.

Versioned keys retire most invalidation anxiety entirely. If every read composes the key from the object and a version field, 'invalidate' becomes 'write' and stale entries simply become garbage that eviction removes on its own schedule.

Continue reading →

Networking

Structuring DNS for Reliability

September 13, 2026

Nameserver outages are devastating because they paralyze systems globally: infrastructure monitors report operational green across every host while end users cannot locate your endpoints. Mitigating this catastrophic blind spot requires standard multi-provider redundancy backed by distinct network b…

Engineering

The Operator's Guide to Load Testing

June 27, 2026

Synthetic load generation consistently fails to replicate production outages because artificial traffic profiles lack real-world dynamics. Sending constant, uniformly spaced queries against a solitary URI tests that specific route in isolation. Real crashes stem from synchronized client retry spikes…

Operations

Multi-Region Failover Planning

October 17, 2026

Preparing multi-datacenter evacuation strategies happens before service interruptions occur. Determining acceptable data freshness tolerances and clarifying operational switch authority seem like administrative matters, yet they directly shape every downstream engineering decision from synchronizati…

Data

Practical Notes on Postgres Connection Pooling

September 7, 2026

Postgres connections are heavy - each backend carries megabytes of memory and a full process - so every scaled-out installation grows a pooler, and every pooler grows a dialect. Session pooling is nearly transparent; transaction pooling is fast and unforgiving, quietly breaking session features like…

More reading

About us

We are a small team of infrastructure engineers and technical writers. We publish what we learn running production systems: incident retrospectives, protocol deep-dives and tooling notes.

More about the project →