how to design async-friendly workflows