awaits run their targets one after the other, not concurrently
await syntax merely enables to run other tasks concurrently. It does not automatically define/create tasks, but executes its statements/expression one after the other.
The user is confused because they have a setup of
await, but things still execute one after the other:
async def main(): await some_async_a() await some_async_b() # only runs after `some_async_a` completed
The correct approach is to explicitly create tasks for concurrent work. This requires framework specific utilities, such as