Ktor has enough batteries for me, except perhaps for authz.
We had a great dev experience with kooby(jooby w kotlin)
Nice one!
I'm on a similar stack: http4k + Jdbi, nicely glued up :)
No coroutines so cute little stacktraces
Here I'm using coroutines + context-parameters. I find much more convenient when I explicitly handle db transactions with context-parameters. Also, using arrow's Raise context adds typed error handling, without too dsl usage.