Concurrency
-
tokio::sync vs std::sync in a real service
When to reach for a blocking std::sync::Mutex in async code and when you must use tokio's version
-
Atomic ordering made sense after I drew it on paper
Acquire, release, relaxed, sequential consistency — I finally have an intuition for when to use which
-
Pin, Unpin, and why async Rust made me read a paper
Self-referential futures, what they imply for memory layout, and why Pin is not as scary as the type signature suggests
-
Tokio's block_in_place is a footgun
It solves one problem cleanly and creates two others that don't show up until you're at scale
-
context.Context is not a cache
A team I consulted with had stuffed request-scoped configuration into context values and it was slowly eating their tail latencies
-
Why I stopped reaching for sync.Map
sync.Map looks like a drop-in replacement for a map with a mutex, but for most workloads it's slower and harder to reason about
-
The goroutine leak I didn't notice for six weeks
A slow creep in our billing service's memory graph turned out to be goroutines blocked on a channel nobody was draining