Hi, I couldn't find info on the high level overview of how ktor works.
I have case, where I need to install an http client feature, which caches, provides and refreshes authentication tokens, which will be used when making http calls. But I am not sure about lifetimes and coroutine scopes.
What I understand is that feature is installed just once and not per request? Which means all the state in the feature is available during the lifetime of the application?
And what happens if I have a coroutine that throws an error while handling request to the server? I presume each request to ktor is handled in some parent coroutine, so error will just cancel that coroutine right? (like when in jetty world, where each request creates a thread)