Why might you choose to make your code asynchronous?
to make your code faster
to ensure that tasks further down in your code are not initiated until earlier tasks have completed
to start tasks that might take some time without blocking subsequent tasks from executing immediately
to ensure that the call stack maintains a LIFO (Last in, First Out) structure