As far as I understand, the whole point of Go is to avoid async :). Async good for making performant IO and networking, for writing simple APIs etc.
But bad when you need to write someting running reliably and predictably and complicated. For that you need something like Erlang or Go. Not Async.