async generator flow