The `Sync` bound nobody asked for
Summary
This Rust-focused piece explains how an async trait method that returns a Send future can implicitly require Sync on the implementor, due to how references are captured across threads. It demonstrates that interior mutability like Cell can trigger Sync requirements and shows how switching from &self to &mut self avoids Sync altogether, with practical implications for API design.