Use async instead of PubSub to coordinate tasks