Hi Raman,
jOOQ is a SQL library. In all things concurrency, jOOQ aims for providing easy to reimplement SPIs, always with a "reasonable" default implementation. This is such a case. jOOQ needs some DefaultExecutor for all async tasks. Most of the JDK defaults to using ForkJoinPool.commonPool(), including Stream.parallel() and others. Is this a good choice for jOOQ, for the JDK? There's no sensible answer suited for everyone. jOOQ is not opinionated, it just does the same as the JDK.
The *worst* thing jOOQ could do is turn into a concurrency-opinionated library (e.g. are the typical concurrency questions the same for a H2/SQLite backed application as they are for Snowflake/BigQuery? Probably not). We'd be endlessly bikeshedding weird cases, not even taking into account all the reactive use-cases.
Hence the very simple to override SPIs, in this case, ExecutorProvider:
Note, if you're using coroutines, why not use R2DBC and jOOQ's kotlin/coroutine extensions?
I hope this helps,
Lukas