Use cases: asyncio is often a perfect fit for IO-bound and high-level structured network code.


A future is an object that represents a value that may not be available yet but will be at some point in the future.
Coroutines can await on Future objects until they either have a result or an exception set, or until they are cancelled