Async is hard... but what if we avoid shared state?
Async Rust is really hard for me. Especially because you constantly have to dip into Send+Sync stuff...
But I'm wondering how the Rust community feels about using channels (primarily mpsc) for doing most async work, like often encouraged in Go.
Couldn't this alleviate a lot of "problems" with async? Is anybody doing this in prod? Completely avoiding shared state and using channels to communicate between threads/futures/tokio::spawn?
EDIT: To elaborate, I'm thinking if you don't share any state (and just send structs over channels) everything might become wildly more simple. I'm wondering if that's truly the case.
I'm coming from web dev land and to me, Arc<Mutex<T>> was the go-to