In the first part of this article, we explored the basic concepts of Kotlin coroutines including the launch and async coroutine builders. In this follow up article, we will be looking at how to cancel background jobs and structured concurrency in coroutine. Cancelling a coroutine is quite easy, the Job object retuned from launch and async coroutine builders has a cancel function that can be invoke