Asked about How asyncio actually works
Explain how async makes many API calls faster when it is single-threaded.
An answer that works
The calls spend almost all their time waiting for the network. The event loop starts a call, and while it waits, starts others. The waits overlap, so total time is close to the slowest call rather than the sum.
Then they push further
So why not start ten thousand at once?
Rate limits, memory, and the provider's patience. You would get errors and throttling. Use a semaphore to cap concurrent calls at a level the provider allows, and retry rate-limit errors with backoff.
Your async service's latency spikes for everyone when one user uploads a large PDF. Why?
PDF parsing is blocking CPU work running on the event loop, so nothing else can run until it finishes. Move it to a thread or process pool, or a separate worker queue.
What gets marked up
Strong answers explain overlapping waits rather than parallel execution, and know that one blocking call stalls the whole loop.
Reading an answer is not being able to give one. The section that teaches this is How asyncio actually works, 4 hours of Async & concurrency.
Learn this properly