I think moving forward with the Quarkiverse JDBC plugin makes sense, especially since the Quarkus community maintains it. Thanks for pushing this forward, Romain!
One caveat is that it doesn't support native image mode ( https://quarkus.io/guides/building-native-image). That should be fine for Polaris, since we don't support native image today. We can simply document this limitation in the Polaris documentation. One more question: does this also address the dynamic datasource requirement? If not, would it be possible to support that in the Quarkiverse JDBC plugin? Yufei On Mon, Aug 3, 2026 at 7:02 AM Romain Manni-Bucau <[email protected]> wrote: > +1, and if a new model is needed it can be pushed to quarkiverse anyway > IMHO > > > > Romain Manni-Bucau > @rmannibucau <https://x.com/rmannibucau> | .NET Blog > <https://dotnetbirdie.github.io/> | Blog <https://rmannibucau.github.io/> > | Old > Blog <http://rmannibucau.wordpress.com> | Github > <https://github.com/rmannibucau> | LinkedIn > <https://www.linkedin.com/in/rmannibucau> | Book > < > https://www.packtpub.com/en-us/product/java-ee-8-high-performance-9781788473064 > > > Javaccino <https://javaccino.dev/> founder (Java/.NET service - contact > via > linkedin) > > > Le lun. 3 août 2026 à 15:34, Robert Stupp <[email protected]> a écrit : > > > Thanks Romain! > > > > I looked at the Quarkiverse extension and the 0.0.1 release. > > This looks like a materially better direction for Polaris operators than > > the Polaris-managed datasource POC. > > > > As I understand it, Quarkus/Agroal still creates and manages the > > datasource; the extension only defers driver selection to runtime. > > That preserves the Quarkus-managed path, with caveats around > > driver-specific/native integrations and the current coupling to Agroal > > internals. > > > > I suggest we test the released extension in Polaris with a > runtime-mounted > > driver, including health, metrics, telemetry, credentials, transactions, > > named datasources, and failure behavior. > > If those checks pass, I think we should adopt this approach and close PR > > #4984 rather than introduce a second supported datasource model. > > > > Cheers, > > Robert > > > > > > On Mon, Aug 3, 2026 at 1:01 PM Romain Manni-Bucau <[email protected] > > > > wrote: > > > > > PS: with the help of George with the latest setup "merges" we get it on > > > central: > > > > > > > > > https://repo1.maven.org/maven2/io/quarkiverse/jdbc/quarkus-jdbc-generic/0.0.1/ > > > > > > Romain Manni-Bucau > > > @rmannibucau <https://x.com/rmannibucau> | .NET Blog > > > <https://dotnetbirdie.github.io/> | Blog < > https://rmannibucau.github.io/ > > > > > > | Old > > > Blog <http://rmannibucau.wordpress.com> | Github > > > <https://github.com/rmannibucau> | LinkedIn > > > <https://www.linkedin.com/in/rmannibucau> | Book > > > < > > > > > > https://www.packtpub.com/en-us/product/java-ee-8-high-performance-9781788473064 > > > > > > > Javaccino <https://javaccino.dev/> founder (Java/.NET service - > contact > > > via > > > linkedin) > > > > > > > > > Le lun. 3 août 2026 à 09:38, Romain Manni-Bucau <[email protected] > > > > a > > > écrit : > > > > > > > Hi all, > > > > > > > > FYI the quarkisverse repo was created -> > > > > https://github.com/quarkiverse/quarkus-jdbc-generic > > > > > > > > waiting some PR to be merged for the release to pass (docs, global > > > release > > > > repo so pipelines work etc), but release can come quickly (well I'll > be > > > off > > > > tomorrow for some holidays with less computer time but you get the > > idea) > > > > > > > > so think it might be the way to move forward - including > enhancements, > > > > wdyt? > > > > > > > > Romain Manni-Bucau > > > > @rmannibucau <https://x.com/rmannibucau> | .NET Blog > > > > <https://dotnetbirdie.github.io/> | Blog < > > https://rmannibucau.github.io/> > > > | > > > > Old Blog <http://rmannibucau.wordpress.com> | Github > > > > <https://github.com/rmannibucau> | LinkedIn > > > > <https://www.linkedin.com/in/rmannibucau> | Book > > > > < > > > > > > https://www.packtpub.com/en-us/product/java-ee-8-high-performance-9781788473064 > > > > > > > > Javaccino <https://javaccino.dev/> founder (Java/.NET service - > > contact > > > > via linkedin) > > > > > > > > > > > > Le ven. 31 juil. 2026 à 10:01, Romain Manni-Bucau < > > [email protected] > > > > > > > > a écrit : > > > > > > > >> quarkiverse is the community OSS marketplace of quarkus, quarkus > > 'core' > > > >> integrate with it. > > > >> personally I see it as component "second citizen" compared to core > but > > > by > > > >> nature something "runtime" will not hit the core, in particular jdbc > > > (cause > > > >> panache, flyway etc will not support it easily/with all optims even > if > > > >> doable). > > > >> > > > >> So it is the least worse you can get and you still get eyes from > > quarkus > > > >> community. > > > >> > > > >> In terms of usage it is just a dependency and likely - once moved - > > with > > > >> proper coordinates so it gets the same validations and quality than > > > >> built-in core extensions. > > > >> > > > >> Romain Manni-Bucau > > > >> @rmannibucau <https://x.com/rmannibucau> | .NET Blog > > > >> <https://dotnetbirdie.github.io/> | Blog < > > > https://rmannibucau.github.io/> | > > > >> Old Blog <http://rmannibucau.wordpress.com> | Github > > > >> <https://github.com/rmannibucau> | LinkedIn > > > >> <https://www.linkedin.com/in/rmannibucau> | Book > > > >> < > > > > > > https://www.packtpub.com/en-us/product/java-ee-8-high-performance-9781788473064 > > > > > > > >> Javaccino <https://javaccino.dev/> founder (Java/.NET service - > > contact > > > >> via linkedin) > > > >> > > > >> > > > >> Le ven. 31 juil. 2026 à 07:31, Yufei Gu <[email protected]> a > > écrit > > > : > > > >> > > > >>> Hi Romain, > > > >>> > > > >>> Thanks a lot for filing the PR and engaging with the Quarkus > > community. > > > >>> Great to see the progress there. > > > >>> > > > >>> I'm not very familiar with Quarkiverse, though. Could you or > someone > > > >>> explain how quarkus-jdbc-generic would work in Quarkiverse? In > > > >>> particular, > > > >>> how would Polaris consume it? Would it allow users to mount a JDBC > > > driver > > > >>> at runtime without rebuilding or reaugmenting the application? > > > >>> > > > >>> Thanks! > > > >>> Yufei > > > >>> > > > >>> On Thu, Jul 30, 2026 at 6:36 AM Romain Manni-Bucau < > > > >>> [email protected]> > > > >>> wrote: > > > >>> > > > >>> > Hi all, > > > >>> > > > > >>> > extracted the PR I did on my github for now -> > > > >>> > https://github.com/quarkusio/quarkus/pull/55677 / > > > >>> > https://github.com/rmannibucau/quarkus-jdbc-generic > > > >>> > but it might end up in quarkiverse so can be a good solution for > > > >>> polaris > > > >>> > community maintained and quarkus supported > > > >>> > > > > >>> > side note: i'll get way less computer time in less than a week so > > if > > > >>> > somebody can follow up until I'm back it would be awesome. > > > >>> > > > > >>> > Romain Manni-Bucau > > > >>> > @rmannibucau <https://x.com/rmannibucau> | .NET Blog > > > >>> > <https://dotnetbirdie.github.io/> | Blog < > > > >>> https://rmannibucau.github.io/> > > > >>> > | Old > > > >>> > Blog <http://rmannibucau.wordpress.com> | Github > > > >>> > <https://github.com/rmannibucau> | LinkedIn > > > >>> > <https://www.linkedin.com/in/rmannibucau> | Book > > > >>> > < > > > >>> > > > > >>> > > > > > > https://www.packtpub.com/en-us/product/java-ee-8-high-performance-9781788473064 > > > >>> > > > > > >>> > Javaccino <https://javaccino.dev/> founder (Java/.NET service - > > > >>> contact > > > >>> > via > > > >>> > linkedin) > > > >>> > > > > >>> > > > > >>> > Le lun. 27 juil. 2026 à 23:58, Romain Manni-Bucau < > > > >>> [email protected]> > > > >>> > a > > > >>> > écrit : > > > >>> > > > > >>> > > Reaugmentation or its friend 'build commands are what makes > final > > > >>> > products > > > >>> > > (like keycloak or polaris) not that consummable compared to > > > standard > > > >>> > plain > > > >>> > > JVM solution (CDI, EE, microprofile, spring and friends apps) > > > >>> > > > > > >>> > > @Dmitri building doesn't add a jar, it does if you add a > > dependency > > > >>> > > somehow, doing a "copy" somewhere does, the common use case is > an > > > >>> init > > > >>> > > container copying the driver from a well know driver (or > location > > > >>> even if > > > >>> > > now OCI images being mountable make it very smooth) to a folder > > in > > > >>> the > > > >>> > > classpath of the app, 0 code modification of the "app", pure > > > config. > > > >>> > > Think this is what we should be after. > > > >>> > > > > > >>> > > Romain Manni-Bucau > > > >>> > > @rmannibucau <https://x.com/rmannibucau> | .NET Blog > > > >>> > > <https://dotnetbirdie.github.io/> | Blog < > > > >>> https://rmannibucau.github.io/> > > > >>> > | > > > >>> > > Old Blog <http://rmannibucau.wordpress.com> | Github > > > >>> > > <https://github.com/rmannibucau> | LinkedIn > > > >>> > > <https://www.linkedin.com/in/rmannibucau> | Book > > > >>> > > < > > > >>> > > > > >>> > > > > > > https://www.packtpub.com/en-us/product/java-ee-8-high-performance-9781788473064 > > > >>> > > > > > >>> > > Javaccino founder (Java/.NET service - contact via linkedin) > > > >>> > > > > > >>> > > > > > >>> > > Le lun. 27 juil. 2026 à 19:31, Dmitri Bourlatchkov < > > > [email protected]> > > > >>> a > > > >>> > > écrit : > > > >>> > > > > > >>> > >> ... but we still need to add (at least) one more jar to the > > > >>> application, > > > >>> > >> right? > > > >>> > >> > > > >>> > >> Is that possible without re-building? Sorry, I did not read > the > > > docs > > > >>> > about > > > >>> > >> "mutable-jar" :) > > > >>> > >> > > > >>> > >> Cheers, > > > >>> > >> Dmitri. > > > >>> > >> > > > >>> > >> On Mon, Jul 27, 2026 at 1:22 PM Alexandre Dutra < > > > [email protected]> > > > >>> > >> wrote: > > > >>> > >> > > > >>> > >> > Hi Dmitri, > > > >>> > >> > > > > >>> > >> > From what I understand from the docs [1], it doesn't > require a > > > >>> > >> > (separate) build, however the application startup will be > very > > > >>> slow > > > >>> > >> > because it will be re-built on the fly. > > > >>> > >> > > > > >>> > >> > Here is the example they show: > > > >>> > >> > > > > >>> > >> > java -jar -Dquarkus.launch.rebuild=true > > > >>> > >> > -Dquarkus.datasource.db-kind=mysql > > > >>> target/quarkus-app/quarkus-run.jar > > > >>> > >> > > > > >>> > >> > Thanks, > > > >>> > >> > Alex > > > >>> > >> > > > > >>> > >> > [1]: > > > >>> > >> > > > > >>> > >> > > > >>> > > > > >>> > > > > > > https://quarkus.io/guides/reaugmentation#2-re-augment-your-application-with-a-different-build-time-configuration > > > >>> > >> > > > > >>> > >> > On Mon, Jul 27, 2026 at 7:06 PM Dmitri Bourlatchkov < > > > >>> [email protected] > > > >>> > > > > > >>> > >> > wrote: > > > >>> > >> > > > > > >>> > >> > > Hi Alex, > > > >>> > >> > > > > > >>> > >> > > Re-augmentation requires a build, does it not? > > > >>> > >> > > > > > >>> > >> > > We can probably do that inside docker: > > > >>> > >> > > > > > >>> > >> > > * User adds a jar to the image > > > >>> > >> > > * Quarkus build is executed inside docker build (using > > helper > > > >>> > scripts > > > >>> > >> > > from Polaris) > > > >>> > >> > > * Final image is has the driver available via Quarkus. > > > >>> > >> > > > > > >>> > >> > > Did you mean something like this? > > > >>> > >> > > > > > >>> > >> > > Cheers, > > > >>> > >> > > Dmitri. > > > >>> > >> > > > > > >>> > >> > > On Mon, Jul 27, 2026 at 10:30 AM Alexandre Dutra < > > > >>> [email protected] > > > >>> > > > > > >>> > >> > wrote: > > > >>> > >> > > > > > >>> > >> > > > Hi all, > > > >>> > >> > > > > > > >>> > >> > > > Indeed the Quarkus PR is likely not going to be > accepted, > > > >>> however > > > >>> > it > > > >>> > >> > > > seems that moving it to Quarkiverse could be acceptable. > > > >>> > >> > > > > > > >>> > >> > > > Someone also suggested the Keycloak project's approach > to > > > this > > > >>> > >> > > > problem: re-augmentation. Keycloak has exactly the same > > > >>> problem. > > > >>> > Can > > > >>> > >> > > > we explore this idea as well? > > > >>> > >> > > > > > > >>> > >> > > > Thanks, > > > >>> > >> > > > Alex > > > >>> > >> > > > > > > >>> > >> > > > On Mon, Jul 27, 2026 at 4:26 PM Dmitri Bourlatchkov < > > > >>> > >> [email protected]> > > > >>> > >> > > > wrote: > > > >>> > >> > > > > > > > >>> > >> > > > > Hi All, > > > >>> > >> > > > > > > > >>> > >> > > > > Reading recent replies on Quarkus PR [55677] it does > not > > > >>> looks > > > >>> > >> like > > > >>> > >> > this > > > >>> > >> > > > > proposal is viable... unfortunately. > > > >>> > >> > > > > > > > >>> > >> > > > > If we go with a mixed approach similar to our PR > [4984], > > > how > > > >>> > about > > > >>> > >> > the > > > >>> > >> > > > > following proposal? > > > >>> > >> > > > > > > > >>> > >> > > > > * Keep the JDBC persistence code generic and unaware > of > > > >>> > DataSource > > > >>> > >> > > > > implementations (i.e. do not try to "manage" it there) > > > >>> > >> > > > > > > > >>> > >> > > > > * Handle custom DataSources at the CDI layer in the > > > >>> runtime/* > > > >>> > >> modules > > > >>> > >> > > > > (ServiceProducers or similar (shared) code). This > layer > > > will > > > >>> > >> choose > > > >>> > >> > > > whether > > > >>> > >> > > > > to use the Quarkus-managed DataSource (default), or > load > > > the > > > >>> > >> driver > > > >>> > >> > > > > dynamically and "manually" configure the DataSource. > > > Custom > > > >>> > >> > downstream > > > >>> > >> > > > > builds will keep the option to override the DataSource > > via > > > >>> CDI > > > >>> > >> > mechanics. > > > >>> > >> > > > > > > > >>> > >> > > > > * Do not try to make custom DataSource configuration > to > > be > > > >>> the > > > >>> > >> same > > > >>> > >> > as > > > >>> > >> > > > the > > > >>> > >> > > > > Quarkus configuration. It can only cause maintenance > > > >>> headache. > > > >>> > >> Define > > > >>> > >> > > > > separate, documented configuration options for the > > dynamic > > > >>> path. > > > >>> > >> > Users of > > > >>> > >> > > > > the dynamic driver will have to handle deployment > > > >>> differences > > > >>> > >> anyway. > > > >>> > >> > > > > > > > >>> > >> > > > > * Use Agroal on both paths for consistency. > > > >>> > >> > > > > > > > >>> > >> > > > > * Add a small integration test for the dynamic path > > based > > > on > > > >>> > MySQL > > > >>> > >> > > > > (test-only GPL deps are ok, I guess). > > > >>> > >> > > > > > > > >>> > >> > > > > As Alex noted above, we'll need to review > observability > > in > > > >>> the > > > >>> > >> custom > > > >>> > >> > > > > DataSource case. I believe that no OTel support will > be > > > >>> > available > > > >>> > >> > there > > > >>> > >> > > > by > > > >>> > >> > > > > default, which probably needs to be documented (at > > least). > > > >>> > >> > > > > > > > >>> > >> > > > > [4984] https://github.com/apache/polaris/pull/4984 > > > >>> > >> > > > > > > > >>> > >> > > > > [55677] > https://github.com/quarkusio/quarkus/pull/55677 > > > >>> > >> > > > > > > > >>> > >> > > > > Cheers, > > > >>> > >> > > > > Dmitri. > > > >>> > >> > > > > > > > >>> > >> > > > > On Mon, Jul 27, 2026 at 8:23 AM Jean-Baptiste Onofré < > > > >>> > >> > [email protected]> > > > >>> > >> > > > > wrote: > > > >>> > >> > > > > > > > >>> > >> > > > > > Hi all, > > > >>> > >> > > > > > > > > >>> > >> > > > > > I previously mentioned the potential for confusion > in > > my > > > >>> > review > > > >>> > >> of > > > >>> > >> > the > > > >>> > >> > > > > > PR. I believe our next steps depend on timing: if a > > > native > > > >>> > >> > solution in > > > >>> > >> > > > > > Agroal/Quarkus is achievable soon, that would be the > > > ideal > > > >>> > path. > > > >>> > >> > > > > > Otherwise, I think PR #4984 could serve as a > suitable > > > >>> > temporary > > > >>> > >> > > > > > mitigation. > > > >>> > >> > > > > > > > > >>> > >> > > > > > Regards, > > > >>> > >> > > > > > JB > > > >>> > >> > > > > > > > > >>> > >> > > > > > On Mon, Jul 27, 2026 at 9:30 AM Alexandre Dutra < > > > >>> > >> [email protected] > > > >>> > >> > > > > > >>> > >> > > > wrote: > > > >>> > >> > > > > > > > > > >>> > >> > > > > > > Hi Yufei, > > > >>> > >> > > > > > > > > > >>> > >> > > > > > > I am still uncomfortable with the approach taken > in > > > >>> #4984 of > > > >>> > >> > mixing > > > >>> > >> > > > > > > managed and unmanaged datasources. IMHO it's > > confusing > > > >>> from > > > >>> > a > > > >>> > >> > > > > > > configuration and observability perspective, and I > > > fear > > > >>> that > > > >>> > >> > > > > > > maintaining unmanaged datasources will prove way > > more > > > >>> > >> complicated > > > >>> > >> > > > than > > > >>> > >> > > > > > > "just" starting and stopping a datasource > manually. > > > >>> > >> > > > > > > > > > >>> > >> > > > > > > Thanks, > > > >>> > >> > > > > > > Alex > > > >>> > >> > > > > > > > > > >>> > >> > > > > > > > > > >>> > >> > > > > > > On Sun, Jul 26, 2026 at 8:14 PM Yufei Gu < > > > >>> > >> [email protected]> > > > >>> > >> > > > wrote: > > > >>> > >> > > > > > > > > > > >>> > >> > > > > > > > Thanks for chiming in, JB! That's essentially > the > > > >>> approach > > > >>> > >> in > > > >>> > >> > my > > > >>> > >> > > > > > PR(4984 > > > >>> > >> > > > > > > > <https://github.com/apache/polaris/pull/4984>), > > > which > > > >>> > >> > corresponds > > > >>> > >> > > > to > > > >>> > >> > > > > > Option > > > >>> > >> > > > > > > > 2 in Robert's email. Are we OK moving foward > with > > > >>> this? > > > >>> > >> > > > > > > > > > > >>> > >> > > > > > > > Per-realm routing is a potential use case, not > the > > > >>> scope > > > >>> > of > > > >>> > >> > this > > > >>> > >> > > > > > effort. > > > >>> > >> > > > > > > > > > > >>> > >> > > > > > > > Yufei > > > >>> > >> > > > > > > > > > > >>> > >> > > > > > > > > > > >>> > >> > > > > > > > On Sun, Jul 26, 2026 at 10:03 AM Jean-Baptiste > > > Onofré > > > >>> < > > > >>> > >> > > > [email protected] > > > >>> > >> > > > > > > > > > >>> > >> > > > > > > > wrote: > > > >>> > >> > > > > > > > > > > >>> > >> > > > > > > > > Hi > > > >>> > >> > > > > > > > > > > > >>> > >> > > > > > > > > As already said, I still think Quarkus/Agroal > > > stays > > > >>> the > > > >>> > >> > default > > > >>> > >> > > > and > > > >>> > >> > > > > > > > > single supported pool. I think adding a > narrow, > > > >>> > JVM-only, > > > >>> > >> > > > documented > > > >>> > >> > > > > > > > > runtime driver escape hatch is right. > > > >>> > >> > > > > > > > > > > > >>> > >> > > > > > > > > Concretely, I would: > > > >>> > >> > > > > > > > > 1. Split the PR: runtime driver loading is a > > > small, > > > >>> > >> > defensible > > > >>> > >> > > > > > > > > feature. The second pool, and per-realm > routing > > > are > > > >>> not > > > >>> > >> > imho, and > > > >>> > >> > > > > > > > > should not ride in on its coattails. > > > >>> > >> > > > > > > > > 2. I think per-realm routing is a way bigger > > > >>> > architectural > > > >>> > >> > > > decision. > > > >>> > >> > > > > > > > > 3. I think we should have an explicit > agreement > > on > > > >>> the > > > >>> > >> > contract > > > >>> > >> > > > > > before > > > >>> > >> > > > > > > > > merging. > > > >>> > >> > > > > > > > > > > > >>> > >> > > > > > > > > The best would be to use Agroal, supporting a > > > >>> > >> runtime-mounted > > > >>> > >> > > > driver > > > >>> > >> > > > > > > > > in JVM mode. I will ping my Quarkus contacts > to > > > get > > > >>> the > > > >>> > >> > status of > > > >>> > >> > > > > > > > > that. > > > >>> > >> > > > > > > > > > > > >>> > >> > > > > > > > > Regards > > > >>> > >> > > > > > > > > JB > > > >>> > >> > > > > > > > > > > > >>> > >> > > > > > > > > > > > >>> > >> > > > > > > > > > > > >>> > >> > > > > > > > > On Fri, Jul 24, 2026 at 10:24 PM Yufei Gu < > > > >>> > >> > [email protected]> > > > >>> > >> > > > > > wrote: > > > >>> > >> > > > > > > > > > > > > >>> > >> > > > > > > > > > Robert, > > > >>> > >> > > > > > > > > > > > > >>> > >> > > > > > > > > > I don't think these are hypothetical use > > cases. > > > >>> > They've > > > >>> > >> > been > > > >>> > >> > > > > > recurring > > > >>> > >> > > > > > > > > > design topics in Polaris for well over a > year. > > > >>> > >> > > > > > > > > > > > > >>> > >> > > > > > > > > > - A JDBC driver supplied at runtime > instead > > > of > > > >>> > being > > > >>> > >> on > > > >>> > >> > the > > > >>> > >> > > > > > build time > > > >>> > >> > > > > > > > > > classpath is important for proprietary > and > > > >>> Apache > > > >>> > >> > license > > > >>> > >> > > > > > incompatible > > > >>> > >> > > > > > > > > > drivers, such as MySQL. This has been > > > >>> discussed in > > > >>> > >> the > > > >>> > >> > > > > > community for > > > >>> > >> > > > > > > > > some > > > >>> > >> > > > > > > > > > time, and PR #4281[4] was blocked by this > > > >>> > limitation. > > > >>> > >> > > > > > > > > > - We've also discussed realm based > > datasource > > > >>> > routing > > > >>> > >> > > > > > repeatedly. For > > > >>> > >> > > > > > > > > > example: > > > >>> > >> > > > > > > > > > - Issue #3890 [1] tracks multi > > datasource > > > >>> > support > > > >>> > >> and > > > >>> > >> > > > > > explicitly > > > >>> > >> > > > > > > > > > discusses whether separation should be > > per > > > >>> realm > > > >>> > >> or > > > >>> > >> > by > > > >>> > >> > > > > > workload. > > > >>> > >> > > > > > > > > > - PR #1482 [2] proposed a concrete > realm > > > to > > > >>> > >> > datasource > > > >>> > >> > > > > > mapping. The > > > >>> > >> > > > > > > > > > discussion wasn't that the use case > was > > > >>> invalid, > > > >>> > >> but > > > >>> > >> > that > > > >>> > >> > > > > > > > > Quarkus's build > > > >>> > >> > > > > > > > > > time datasource model made it > difficult. > > > >>> > >> > > > > > > > > > - PR #3960 [3] introduced > > > >>> DataSourceResolver as > > > >>> > >> > > > groundwork > > > >>> > >> > > > > > for > > > >>> > >> > > > > > > > > > datasource routing. The feedback was > to > > > >>> refine > > > >>> > the > > > >>> > >> > > > design, > > > >>> > >> > > > > > not > > > >>> > >> > > > > > > > > > that the use > > > >>> > >> > > > > > > > > > case itself shouldn't be supported. > > > >>> > >> > > > > > > > > > > > > >>> > >> > > > > > > > > > Given this history, I don't think the > question > > > is > > > >>> > >> whether > > > >>> > >> > these > > > >>> > >> > > > > > are real > > > >>> > >> > > > > > > > > > use cases. The project has already > > acknowledged > > > >>> them > > > >>> > >> > multiple > > > >>> > >> > > > > > times. > > > >>> > >> > > > > > > > > > > > > >>> > >> > > > > > > > > > Romain, thanks for the suggestion. I wish > this > > > >>> could > > > >>> > be > > > >>> > >> > > > resolved > > > >>> > >> > > > > > upstream > > > >>> > >> > > > > > > > > > in Quarkus, but I don't have much hope, > since > > > >>> build > > > >>> > time > > > >>> > >> > > > dependency > > > >>> > >> > > > > > > > > > resolution is one of Quarkus's core design > > > >>> principles. > > > >>> > >> > > > > > > > > > > > > >>> > >> > > > > > > > > > [1] > > > https://github.com/apache/polaris/issues/3890 > > > >>> > >> > > > > > > > > > > > > >>> > >> > > > > > > > > > [2] > > https://github.com/apache/polaris/pull/1482 > > > >>> > >> > > > > > > > > > > > > >>> > >> > > > > > > > > > [3] > > https://github.com/apache/polaris/pull/3960 > > > >>> > >> > > > > > > > > > > > > >>> > >> > > > > > > > > > [4] > > https://github.com/apache/polaris/pull/4281 > > > >>> > >> > > > > > > > > > > > > >>> > >> > > > > > > > > > Yufei > > > >>> > >> > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > >>> > >> > > > > > > > > > On Fri, Jul 24, 2026 at 8:54 AM Romain > > > >>> Manni-Bucau < > > > >>> > >> > > > > > > > > [email protected]> > > > >>> > >> > > > > > > > > > wrote: > > > >>> > >> > > > > > > > > > > > > >>> > >> > > > > > > > > > > If down stream users need to build > anything > > > >>> instead > > > >>> > of > > > >>> > >> > mount > > > >>> > >> > > > the > > > >>> > >> > > > > > driver > > > >>> > >> > > > > > > > > > > then polaris becomes a lib and not a > server, > > > >>> think > > > >>> > >> very > > > >>> > >> > few > > > >>> > >> > > > > > consumer > > > >>> > >> > > > > > > > > see it > > > >>> > >> > > > > > > > > > > this way nor would like it so I would > favor > > > >>> runtime > > > >>> > >> > support. > > > >>> > >> > > > > > > > > > > > > > >>> > >> > > > > > > > > > > The side note is that it is always better > to > > > not > > > >>> > >> compète > > > >>> > >> > with > > > >>> > >> > > > > > its own > > > >>> > >> > > > > > > > > stack > > > >>> > >> > > > > > > > > > > so maybe two push back to quarkus natively > > > >>> before > > > >>> > >> acting > > > >>> > >> > > > there. > > > >>> > >> > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > >>> > >> > > > > > > > > > > Romain Manni-Bucau > > > >>> > >> > > > > > > > > > > @rmannibucau <https://x.com/rmannibucau> > | > > > .NET > > > >>> > Blog > > > >>> > >> > > > > > > > > > > <https://dotnetbirdie.github.io/> | Blog > < > > > >>> > >> > > > > > > > > https://rmannibucau.github.io/> > > > >>> > >> > > > > > > > > > > | Old > > > >>> > >> > > > > > > > > > > Blog <http://rmannibucau.wordpress.com> | > > > >>> Github > > > >>> > >> > > > > > > > > > > <https://github.com/rmannibucau> | > LinkedIn > > > >>> > >> > > > > > > > > > > <https://www.linkedin.com/in/rmannibucau> > | > > > >>> Book > > > >>> > >> > > > > > > > > > > < > > > >>> > >> > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > >>> > >> > > > > > > > > >>> > >> > > > > > > >>> > >> > > > > >>> > >> > > > >>> > > > > >>> > > > > > > https://www.packtpub.com/en-us/product/java-ee-8-high-performance-9781788473064 > > > >>> > >> > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > Javaccino founder (Java/.NET service - > > contact > > > >>> via > > > >>> > >> > linkedin) > > > >>> > >> > > > > > > > > > > > > > >>> > >> > > > > > > > > > > Le ven. 24 juil. 2026, 17:50, Robert > Stupp < > > > >>> > >> > [email protected]> > > > >>> > >> > > > a > > > >>> > >> > > > > > écrit : > > > >>> > >> > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > Hi Yufei, > > > >>> > >> > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > Option 1 would not provide either > > capability > > > >>> at > > > >>> > >> > runtime in > > > >>> > >> > > > the > > > >>> > >> > > > > > > > > upstream > > > >>> > >> > > > > > > > > > > > Polaris distribution. > > > >>> > >> > > > > > > > > > > > Optional drivers would be added through > a > > > >>> > downstream > > > >>> > >> > build > > > >>> > >> > > > or > > > >>> > >> > > > > > > > > assembly, > > > >>> > >> > > > > > > > > > > and > > > >>> > >> > > > > > > > > > > > datasource creation would remain > > > >>> Quarkus-managed. > > > >>> > >> > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > That is intentional rather than a > missing > > > >>> part of > > > >>> > >> > option 1. > > > >>> > >> > > > > > > > > > > > I mentioned runtime driver loading and > > > >>> per-realm > > > >>> > >> > routing > > > >>> > >> > > > > > because > > > >>> > >> > > > > > > > > they are > > > >>> > >> > > > > > > > > > > > the two use cases stated for the POC, > not > > > >>> because > > > >>> > I > > > >>> > >> > think > > > >>> > >> > > > the > > > >>> > >> > > > > > > > > project has > > > >>> > >> > > > > > > > > > > > already agreed that Polaris itself must > > > >>> support > > > >>> > >> both. > > > >>> > >> > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > The concrete current ask I see is a > viable > > > >>> path > > > >>> > for > > > >>> > >> > > > optional > > > >>> > >> > > > > > drivers > > > >>> > >> > > > > > > > > that > > > >>> > >> > > > > > > > > > > > Polaris cannot distribute in ASF > releases. > > > >>> > >> > > > > > > > > > > > Runtime loading is one possible answer > to > > > that > > > >>> > ask. > > > >>> > >> > > > > > > > > > > > A downstream build or assembly is > another. > > > >>> > >> > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > Dynamic per-realm datasource creation > is a > > > >>> > separate > > > >>> > >> > future > > > >>> > >> > > > > > design. > > > >>> > >> > > > > > > > > > > > I do not think it should become an > > implicit > > > >>> > >> requirement > > > >>> > >> > > > for the > > > >>> > >> > > > > > > > > > > > optional-driver decision before its > > > isolation, > > > >>> > >> > lifecycle, > > > >>> > >> > > > > > resource, > > > >>> > >> > > > > > > > > and > > > >>> > >> > > > > > > > > > > > operational contract has been discussed. > > > >>> > >> > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > So before evaluating option 1 against > > option > > > >>> 2's > > > >>> > >> > > > capabilities, > > > >>> > >> > > > > > I > > > >>> > >> > > > > > > > > think we > > > >>> > >> > > > > > > > > > > > need to decide whether runtime driver > > > loading > > > >>> and > > > >>> > >> > > > Polaris-owned > > > >>> > >> > > > > > > > > dynamic > > > >>> > >> > > > > > > > > > > > datasource creation are project > > > requirements. > > > >>> > >> > > > > > > > > > > > If both are requirements, option 1 is > > > >>> naturally > > > >>> > >> > excluded. > > > >>> > >> > > > > > > > > > > > If they are not, the POC's additional > > > >>> capabilities > > > >>> > >> > should > > > >>> > >> > > > not > > > >>> > >> > > > > > by > > > >>> > >> > > > > > > > > > > themselves > > > >>> > >> > > > > > > > > > > > become acceptance criteria for every > > > >>> alternative. > > > >>> > >> > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > My preference remains to preserve the > > > >>> > >> Quarkus-managed > > > >>> > >> > path > > > >>> > >> > > > and > > > >>> > >> > > > > > > > > address > > > >>> > >> > > > > > > > > > > the > > > >>> > >> > > > > > > > > > > > optional-driver ask as narrowly as > > possible. > > > >>> > >> > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > Cheers, > > > >>> > >> > > > > > > > > > > > Robert > > > >>> > >> > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > On Thu, Jul 23, 2026 at 8:59 PM Yufei > Gu < > > > >>> > >> > > > [email protected] > > > >>> > >> > > > > > > > > > >>> > >> > > > > > > > > wrote: > > > >>> > >> > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > That ask does not by itself justify > > > >>> moving all > > > >>> > >> > > > supported > > > >>> > >> > > > > > > > > deployments > > > >>> > >> > > > > > > > > > > > away > > > >>> > >> > > > > > > > > > > > > > from Quarkus datasource management. > > > >>> > >> > > > > > > > > > > > > > Doing so would make Polaris > > responsible > > > >>> for > > > >>> > >> > > > configuration > > > >>> > >> > > > > > > > > > > > compatibility, > > > >>> > >> > > > > > > > > > > > > > lifecycle, health, metrics, tracing, > > > >>> > >> > > > credentials-provider > > > >>> > >> > > > > > > > > > > integration, > > > >>> > >> > > > > > > > > > > > > > shutdown, upgrades, and the support > > > matrix > > > >>> > >> > currently > > > >>> > >> > > > > > covered by > > > >>> > >> > > > > > > > > > > > Quarkus. > > > >>> > >> > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > 1. Keep Quarkus-managed data-sources > > and > > > >>> > >> document > > > >>> > >> > the > > > >>> > >> > > > > > downstream > > > >>> > >> > > > > > > > > > > > > > build/assembly path for optional > > > >>> drivers. > > > >>> > >> > > > > > > > > > > > > > 2. Keep Quarkus-managed data-sources > > as > > > >>> the > > > >>> > >> > default and > > > >>> > >> > > > > > add a > > > >>> > >> > > > > > > > > > > > > deliberately > > > >>> > >> > > > > > > > > > > > > > limited JVM-only runtime-driver > > > escape > > > >>> > hatch. > > > >>> > >> > > > > > > > > > > > > > 3. Replace Quarkus-managed > > data-sources > > > >>> > >> completely. > > > >>> > >> > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > My current preference is ... > (option1). > > > >>> > >> > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > Robert, one thing I'm still unclear > > about > > > >>> is how > > > >>> > >> > option 1 > > > >>> > >> > > > > > would > > > >>> > >> > > > > > > > > support > > > >>> > >> > > > > > > > > > > > the > > > >>> > >> > > > > > > > > > > > > following use cases that you > mentioned: > > > >>> > >> > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > - Loading optional JDBC drivers at > > > >>> runtime. > > > >>> > >> > > > > > > > > > > > > - Creating datasources dynamically > > as a > > > >>> > >> building > > > >>> > >> > > > block for > > > >>> > >> > > > > > > > > future > > > >>> > >> > > > > > > > > > > per > > > >>> > >> > > > > > > > > > > > > realm routing. > > > >>> > >> > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > My PR proposes option 2 because it > > > addresses > > > >>> > these > > > >>> > >> > use > > > >>> > >> > > > cases > > > >>> > >> > > > > > while > > > >>> > >> > > > > > > > > > > > keeping > > > >>> > >> > > > > > > > > > > > > the existing Quarkus managed > deployment > > > path > > > >>> > >> > unchanged. > > > >>> > >> > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > Yufei > > > >>> > >> > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > On Thu, Jul 23, 2026 at 8:59 AM Dmitri > > > >>> > >> Bourlatchkov < > > > >>> > >> > > > > > > > > [email protected]> > > > >>> > >> > > > > > > > > > > > > wrote: > > > >>> > >> > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > Hi Yufei, > > > >>> > >> > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > I wonder why you chose Hikari > > initially > > > in > > > >>> > your > > > >>> > >> PR > > > >>> > >> > > > 4984. > > > >>> > >> > > > > > > > > > > Understanding > > > >>> > >> > > > > > > > > > > > > that > > > >>> > >> > > > > > > > > > > > > > rationale could be helpful for this > > > >>> > discussion. > > > >>> > >> > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > Thanks, > > > >>> > >> > > > > > > > > > > > > > Dmitri. > > > >>> > >> > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > On Wed, Jul 22, 2026 at 11:28 PM > Yufei > > > Gu > > > >>> < > > > >>> > >> > > > > > [email protected]> > > > >>> > >> > > > > > > > > > > > wrote: > > > >>> > >> > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > Looks like we have two options at > > this > > > >>> > point: > > > >>> > >> > Hikari > > > >>> > >> > > > > > (Alex, > > > >>> > >> > > > > > > > > me) and > > > >>> > >> > > > > > > > > > > > > > Agroal > > > >>> > >> > > > > > > > > > > > > > > (Dmitri, JB, Romain). > > > >>> > >> > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > Is there any further investigation > > we > > > >>> should > > > >>> > >> do > > > >>> > >> > > > before > > > >>> > >> > > > > > making a > > > >>> > >> > > > > > > > > > > > > decision? > > > >>> > >> > > > > > > > > > > > > > > Or are we ready to start a vote? > > > >>> > >> > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > Yufei > > > >>> > >> > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > On Thu, Jul 16, 2026 at 10:15 PM > > > Romain > > > >>> > >> > Manni-Bucau < > > > >>> > >> > > > > > > > > > > > > > [email protected] > > > >>> > >> > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > wrote: > > > >>> > >> > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > Maybe add "is there more than > one > > > >>> > committer" > > > >>> > >> > on the > > > >>> > >> > > > > > project > > > >>> > >> > > > > > > > > as a > > > >>> > >> > > > > > > > > > > > > > > criteria. > > > >>> > >> > > > > > > > > > > > > > > > Agroal is far to be my preferred > > > pool > > > >>> but > > > >>> > it > > > >>> > >> > is as > > > >>> > >> > > > > > easy as > > > >>> > >> > > > > > > > > others > > > >>> > >> > > > > > > > > > > > in > > > >>> > >> > > > > > > > > > > > > > > terms > > > >>> > >> > > > > > > > > > > > > > > > of config starting from > properties > > > >>> ([1]) > > > >>> > and > > > >>> > >> > using > > > >>> > >> > > > its > > > >>> > >> > > > > > > > > listeners. > > > >>> > >> > > > > > > > > > > > > > > > Also note that I assume all > > > properties > > > >>> > will > > > >>> > >> > not be > > > >>> > >> > > > > > exposed > > > >>> > >> > > > > > > > > but > > > >>> > >> > > > > > > > > > > > > > abstracted > > > >>> > >> > > > > > > > > > > > > > > > by polaris configuration > > > (potentially > > > >>> > >> enabling > > > >>> > >> > a > > > >>> > >> > > > switch > > > >>> > >> > > > > > > > > later or > > > >>> > >> > > > > > > > > > > a > > > >>> > >> > > > > > > > > > > > > > > > multipool support like in Apache > > > >>> TomEE) so > > > >>> > >> > maybe > > > >>> > >> > > > it is > > > >>> > >> > > > > > the > > > >>> > >> > > > > > > > > first > > > >>> > >> > > > > > > > > > > > > thing > > > >>> > >> > > > > > > > > > > > > > to > > > >>> > >> > > > > > > > > > > > > > > > define, the needed properties > and > > > >>> > callbacks? > > > >>> > >> > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > [1] > > > >>> > >> > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > >>> > >> > > > > > > > > >>> > >> > > > > > > >>> > >> > > > > >>> > >> > > > >>> > > > > >>> > > > > > > https://github.com/agroal/agroal/blob/517fd36ab0cf1faebaae7d57a55c788d499a4c88/agroal-api/src/main/java/io/agroal/api/configuration/supplier/AgroalPropertiesReader.java#L56 > > > >>> > >> > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > Romain Manni-Bucau > > > >>> > >> > > > > > > > > > > > > > > > @rmannibucau < > > > >>> https://x.com/rmannibucau> > > > >>> > | > > > >>> > >> > .NET > > > >>> > >> > > > Blog > > > >>> > >> > > > > > > > > > > > > > > > < > https://dotnetbirdie.github.io/> > > | > > > >>> Blog > > > >>> > < > > > >>> > >> > > > > > > > > > > > > > https://rmannibucau.github.io/ > > > >>> > >> > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > | Old > > > >>> > >> > > > > > > > > > > > > > > > Blog < > > > >>> http://rmannibucau.wordpress.com> | > > > >>> > >> > Github > > > >>> > >> > > > > > > > > > > > > > > > <https://github.com/rmannibucau > > > > | > > > >>> > LinkedIn > > > >>> > >> > > > > > > > > > > > > > > > < > > > >>> https://www.linkedin.com/in/rmannibucau> > > > >>> > | > > > >>> > >> > Book > > > >>> > >> > > > > > > > > > > > > > > > < > > > >>> > >> > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > >>> > >> > > > > > > > > >>> > >> > > > > > > >>> > >> > > > > >>> > >> > > > >>> > > > > >>> > > > > > > https://www.packtpub.com/en-us/product/java-ee-8-high-performance-9781788473064 > > > >>> > >> > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > Javaccino founder (Java/.NET > > > service - > > > >>> > >> contact > > > >>> > >> > via > > > >>> > >> > > > > > linkedin) > > > >>> > >> > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > Le jeu. 16 juil. 2026 à 22:18, > > > >>> Alexandre > > > >>> > >> Dutra > > > >>> > >> > < > > > >>> > >> > > > > > > > > > > [email protected]> > > > >>> > >> > > > > > > > > > > > a > > > >>> > >> > > > > > > > > > > > > > > > écrit : > > > >>> > >> > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > Hi all, > > > >>> > >> > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > I don't think the actual pool > > > >>> > >> implementation > > > >>> > >> > > > matters > > > >>> > >> > > > > > much, > > > >>> > >> > > > > > > > > but > > > >>> > >> > > > > > > > > > > I > > > >>> > >> > > > > > > > > > > > > > would > > > >>> > >> > > > > > > > > > > > > > > > > weigh in some important > criteria > > > >>> before > > > >>> > >> > choosing: > > > >>> > >> > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > - Is it easily configurable? > > > >>> > >> > > > > > > > > > > > > > > > > - Is it easily instrumentable? > > > >>> > >> > > > > > > > > > > > > > > > > - Is it well documented & > > > >>> maintained? > > > >>> > >> > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > While Agroal is the de facto > > > choice > > > >>> for > > > >>> > >> > Quarkus > > > >>> > >> > > > > > (it's a > > > >>> > >> > > > > > > > > JBoss > > > >>> > >> > > > > > > > > > > > > lib), I > > > >>> > >> > > > > > > > > > > > > > > > > am not sure it outperforms > > Hikari > > > >>> for > > > >>> > all > > > >>> > >> the > > > >>> > >> > > > > > criteria > > > >>> > >> > > > > > > > > above. > > > >>> > >> > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > Thanks, > > > >>> > >> > > > > > > > > > > > > > > > > Alex > > > >>> > >> > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > On Thu, Jul 16, 2026 at > 6:22 PM > > > >>> Yufei > > > >>> > Gu < > > > >>> > >> > > > > > > > > [email protected] > > > >>> > >> > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > wrote: > > > >>> > >> > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > Thanks everyone for chiming > > in. > > > >>> Agroal > > > >>> > >> is a > > > >>> > >> > > > good > > > >>> > >> > > > > > option > > > >>> > >> > > > > > > > > as > > > >>> > >> > > > > > > > > > > > well. > > > >>> > >> > > > > > > > > > > > > It > > > >>> > >> > > > > > > > > > > > > > > > looks > > > >>> > >> > > > > > > > > > > > > > > > > > like we're reaching > consensus > > on > > > >>> > direct > > > >>> > >> > > > datasource > > > >>> > >> > > > > > > > > management > > > >>> > >> > > > > > > > > > > > at > > > >>> > >> > > > > > > > > > > > > > > > runtime. > > > >>> > >> > > > > > > > > > > > > > > > > > I'll start working on the > > > >>> > implementation > > > >>> > >> > soon. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > Yufei > > > >>> > >> > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > On Thu, Jul 16, 2026 at > > 4:16 AM > > > >>> > >> > Jean-Baptiste > > > >>> > >> > > > > > Onofré < > > > >>> > >> > > > > > > > > > > > > > > [email protected]> > > > >>> > >> > > > > > > > > > > > > > > > > > wrote: > > > >>> > >> > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > Hi all, > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > I agree that direct > > datasource > > > >>> > >> > management at > > > >>> > >> > > > > > runtime > > > >>> > >> > > > > > > > > is a > > > >>> > >> > > > > > > > > > > > > better > > > >>> > >> > > > > > > > > > > > > > > > > > > approach than relying on > > > >>> > >> > quarkus-datasource, > > > >>> > >> > > > > > which > > > >>> > >> > > > > > > > > > > currently > > > >>> > >> > > > > > > > > > > > > > > requires > > > >>> > >> > > > > > > > > > > > > > > > > > > build-time dependencies. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > However, we can stay > within > > > the > > > >>> > >> Quarkus > > > >>> > >> > > > > > ecosystem and > > > >>> > >> > > > > > > > > avoid > > > >>> > >> > > > > > > > > > > > > > > > > > > introducing new > dependencies > > > by > > > >>> > using > > > >>> > >> > Agroal, > > > >>> > >> > > > > > which is > > > >>> > >> > > > > > > > > > > > already > > > >>> > >> > > > > > > > > > > > > > > > > > > included in our > > dependencies. > > > >>> This > > > >>> > >> also > > > >>> > >> > keeps > > > >>> > >> > > > > > the door > > > >>> > >> > > > > > > > > open > > > >>> > >> > > > > > > > > > > > to > > > >>> > >> > > > > > > > > > > > > > > > > > > combining it with Panache > in > > > the > > > >>> > >> future, > > > >>> > >> > > > should > > > >>> > >> > > > > > we > > > >>> > >> > > > > > > > > decide > > > >>> > >> > > > > > > > > > > to > > > >>> > >> > > > > > > > > > > > do > > > >>> > >> > > > > > > > > > > > > > so. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > Regards, > > > >>> > >> > > > > > > > > > > > > > > > > > > JB > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > On Thu, Jul 16, 2026 at > > > 1:28 AM > > > >>> > Yufei > > > >>> > >> Gu > > > >>> > >> > < > > > >>> > >> > > > > > > > > > > > [email protected] > > > >>> > >> > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > wrote: > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > If our goal is to > > > transition > > > >>> > >> > entirely to > > > >>> > >> > > > a > > > >>> > >> > > > > > > > > > > > "runtime-driven" > > > >>> > >> > > > > > > > > > > > > > > > > > > architecture, > > > >>> > >> > > > > > > > > > > > > > > > > > > > we should commit to it > > > >>> completely > > > >>> > by > > > >>> > >> > fully > > > >>> > >> > > > > > removing > > > >>> > >> > > > > > > > > the > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > io.quarkus:quarkus-datasource > > > >>> > >> > > > > > > > > > > > > > > > > > > > dependency and switching > > to > > > >>> Hikari > > > >>> > >> > > > > > unconditionally. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > Good point, Alex! I'm > open > > > to > > > >>> > that. > > > >>> > >> If > > > >>> > >> > the > > > >>> > >> > > > > > community > > > >>> > >> > > > > > > > > > > > agrees, > > > >>> > >> > > > > > > > > > > > > I > > > >>> > >> > > > > > > > > > > > > > > can > > > >>> > >> > > > > > > > > > > > > > > > > make > > > >>> > >> > > > > > > > > > > > > > > > > > > > that change. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > Romain, I chose Hikari > > > >>> because it > > > >>> > is > > > >>> > >> > lean, > > > >>> > >> > > > > > fast, > > > >>> > >> > > > > > > > > simple. > > > >>> > >> > > > > > > > > > > > I'm > > > >>> > >> > > > > > > > > > > > > > open > > > >>> > >> > > > > > > > > > > > > > > > to > > > >>> > >> > > > > > > > > > > > > > > > > > > > alternatives like dbcp2 > if > > > its > > > >>> > >> > evaluation > > > >>> > >> > > > > > proves > > > >>> > >> > > > > > > > > better. > > > >>> > >> > > > > > > > > > > As > > > >>> > >> > > > > > > > > > > > > you > > > >>> > >> > > > > > > > > > > > > > > > said, > > > >>> > >> > > > > > > > > > > > > > > > > > > both > > > >>> > >> > > > > > > > > > > > > > > > > > > > have pros and cons. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > Yufei > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > On Wed, Jul 15, 2026 at > > > >>> 11:03 AM > > > >>> > >> Romain > > > >>> > >> > > > > > Manni-Bucau < > > > >>> > >> > > > > > > > > > > > > > > > > > > [email protected]> > > > >>> > >> > > > > > > > > > > > > > > > > > > > wrote: > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > Dumb question: why > > hikari? > > > >>> it > > > >>> > has > > > >>> > >> > some > > > >>> > >> > > > > > issues like > > > >>> > >> > > > > > > > > not > > > >>> > >> > > > > > > > > > > > > > > respecting > > > >>> > >> > > > > > > > > > > > > > > > > its > > > >>> > >> > > > > > > > > > > > > > > > > > > conf > > > >>> > >> > > > > > > > > > > > > > > > > > > > > intentionally (max > size > > in > > > >>> > >> > particular is > > > >>> > >> > > > the > > > >>> > >> > > > > > one > > > >>> > >> > > > > > > > > which > > > >>> > >> > > > > > > > > > > > > hurts > > > >>> > >> > > > > > > > > > > > > > > > since > > > >>> > >> > > > > > > > > > > > > > > > > you > > > >>> > >> > > > > > > > > > > > > > > > > > > > > overconsume for a > moment > > > >>> your > > > >>> > >> > database > > > >>> > >> > > > > > connections > > > >>> > >> > > > > > > > > == > > > >>> > >> > > > > > > > > > > > > prevent > > > >>> > >> > > > > > > > > > > > > > > > some > > > >>> > >> > > > > > > > > > > > > > > > > > > services > > > >>> > >> > > > > > > > > > > > > > > > > > > > > to connect when scaled > > and > > > >>> tuned > > > >>> > >> at > > > >>> > >> > max > > > >>> > >> > > > > > count), > > > >>> > >> > > > > > > > > there > > > >>> > >> > > > > > > > > > > is > > > >>> > >> > > > > > > > > > > > no > > > >>> > >> > > > > > > > > > > > > > > > silver > > > >>> > >> > > > > > > > > > > > > > > > > > > bullet > > > >>> > >> > > > > > > > > > > > > > > > > > > > > but something like > dbcp2 > > > >>> can be > > > >>> > >> neat > > > >>> > >> > to > > > >>> > >> > > > start > > > >>> > >> > > > > > > > > _there_ > > > >>> > >> > > > > > > > > > > if > > > >>> > >> > > > > > > > > > > > > > agroal > > > >>> > >> > > > > > > > > > > > > > > > is > > > >>> > >> > > > > > > > > > > > > > > > > not > > > >>> > >> > > > > > > > > > > > > > > > > > > used > > > >>> > >> > > > > > > > > > > > > > > > > > > > > as a base no - that > > said I > > > >>> dont > > > >>> > >> see > > > >>> > >> > why > > > >>> > >> > > > > > switching > > > >>> > >> > > > > > > > > at > > > >>> > >> > > > > > > > > > > all, > > > >>> > >> > > > > > > > > > > > > > > agroal > > > >>> > >> > > > > > > > > > > > > > > > > can be > > > >>> > >> > > > > > > > > > > > > > > > > > > > > used without build > time > > > >>> > >> integration > > > >>> > >> > and > > > >>> > >> > > > stay > > > >>> > >> > > > > > > > > consistent > > > >>> > >> > > > > > > > > > > > > with > > > >>> > >> > > > > > > > > > > > > > it > > > >>> > >> > > > > > > > > > > > > > > > if > > > >>> > >> > > > > > > > > > > > > > > > > a > > > >>> > >> > > > > > > > > > > > > > > > > > > day it > > > >>> > >> > > > > > > > > > > > > > > > > > > > > comes back? > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > Romain Manni-Bucau > > > >>> > >> > > > > > > > > > > > > > > > > > > > > @rmannibucau < > > > >>> > >> > https://x.com/rmannibucau> > > > >>> > >> > > > | > > > >>> > >> > > > > > .NET > > > >>> > >> > > > > > > > > Blog > > > >>> > >> > > > > > > > > > > > > > > > > > > > > < > > > >>> > https://dotnetbirdie.github.io/> > > > >>> > >> | > > > >>> > >> > > > Blog < > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > https://rmannibucau.github.io/> > > > >>> > >> > > > > > > > > > > > > > > > > > > > > | Old > > > >>> > >> > > > > > > > > > > > > > > > > > > > > Blog < > > > >>> > >> > http://rmannibucau.wordpress.com> > > > >>> > >> > > > | > > > >>> > >> > > > > > Github > > > >>> > >> > > > > > > > > > > > > > > > > > > > > < > > > >>> https://github.com/rmannibucau > > > >>> > > > > > >>> > >> | > > > >>> > >> > > > LinkedIn > > > >>> > >> > > > > > > > > > > > > > > > > > > > > < > > > >>> > >> > https://www.linkedin.com/in/rmannibucau> > > > >>> > >> > > > | > > > >>> > >> > > > > > Book > > > >>> > >> > > > > > > > > > > > > > > > > > > > > < > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > >>> > >> > > > > > > > > >>> > >> > > > > > > >>> > >> > > > > >>> > >> > > > >>> > > > > >>> > > > > > > https://www.packtpub.com/en-us/product/java-ee-8-high-performance-9781788473064 > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > Javaccino founder > > > (Java/.NET > > > >>> > >> service > > > >>> > >> > - > > > >>> > >> > > > > > contact via > > > >>> > >> > > > > > > > > > > > > linkedin) > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > Le mer. 15 juil. 2026 > à > > > >>> 19:13, > > > >>> > >> > Alexandre > > > >>> > >> > > > > > Dutra < > > > >>> > >> > > > > > > > > > > > > > > > [email protected]> > > > >>> > >> > > > > > > > > > > > > > > > > a > > > >>> > >> > > > > > > > > > > > > > > > > > > > > écrit : > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > Hi all, > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > If jdbc-url is > set, > > > >>> Polaris > > > >>> > >> > creates > > > >>> > >> > > > and > > > >>> > >> > > > > > owns > > > >>> > >> > > > > > > > > the > > > >>> > >> > > > > > > > > > > > Hikari > > > >>> > >> > > > > > > > > > > > > > > > > > > datasource. If > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > it is not set, we > keep > > > >>> using > > > >>> > the > > > >>> > >> > > > existing > > > >>> > >> > > > > > Quarkus > > > >>> > >> > > > > > > > > > > > > > datasource > > > >>> > >> > > > > > > > > > > > > > > > > path. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > I have strong > > > reservations > > > >>> > >> > regarding > > > >>> > >> > > > this > > > >>> > >> > > > > > design. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > Alternating between > a > > > >>> Hikari > > > >>> > >> pool > > > >>> > >> > and > > > >>> > >> > > > an > > > >>> > >> > > > > > Agroal > > > >>> > >> > > > > > > > > pool > > > >>> > >> > > > > > > > > > > > > > > depending > > > >>> > >> > > > > > > > > > > > > > > > > on the > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > configuration > > introduces > > > >>> > >> > unnecessary > > > >>> > >> > > > > > complexity > > > >>> > >> > > > > > > > > and > > > >>> > >> > > > > > > > > > > > > > potential > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > confusion. A major > > > >>> drawback is > > > >>> > >> that > > > >>> > >> > > > bugs, > > > >>> > >> > > > > > > > > performance > > > >>> > >> > > > > > > > > > > > > > > > > > > characteristics, > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > and configuration > > issues > > > >>> will > > > >>> > >> vary > > > >>> > >> > > > across > > > >>> > >> > > > > > > > > deployments > > > >>> > >> > > > > > > > > > > > > > purely > > > >>> > >> > > > > > > > > > > > > > > > > based on > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > the underlying > > > connection > > > >>> pool > > > >>> > >> in > > > >>> > >> > use. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > If our goal is to > > > >>> transition > > > >>> > >> > entirely > > > >>> > >> > > > to a > > > >>> > >> > > > > > > > > > > > > "runtime-driven" > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > architecture, we > > should > > > >>> commit > > > >>> > >> to > > > >>> > >> > it > > > >>> > >> > > > > > completely > > > >>> > >> > > > > > > > > by > > > >>> > >> > > > > > > > > > > > fully > > > >>> > >> > > > > > > > > > > > > > > > > removing the > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > >>> io.quarkus:quarkus-datasource > > > >>> > >> > > > dependency > > > >>> > >> > > > > > and > > > >>> > >> > > > > > > > > > > switching > > > >>> > >> > > > > > > > > > > > to > > > >>> > >> > > > > > > > > > > > > > > > Hikari > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > unconditionally. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > Thanks, > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > Alex > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > On Tue, Jul 7, 2026 > at > > > >>> 7:10 PM > > > >>> > >> > Yufei > > > >>> > >> > > > Gu < > > > >>> > >> > > > > > > > > > > > > > > [email protected]> > > > >>> > >> > > > > > > > > > > > > > > > > > > wrote: > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > Hi Robert, JB, > > Dmitri, > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > Thanks, this > > feedback > > > >>> makes > > > >>> > >> > sense. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > There are really > two > > > >>> > >> motivations > > > >>> > >> > > > here: > > > >>> > >> > > > > > runtime > > > >>> > >> > > > > > > > > > > > loading > > > >>> > >> > > > > > > > > > > > > of > > > >>> > >> > > > > > > > > > > > > > > > JDBC > > > >>> > >> > > > > > > > > > > > > > > > > > > drivers, > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > and > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > dynamic datasource > > > >>> creation. > > > >>> > >> The > > > >>> > >> > > > former > > > >>> > >> > > > > > is > > > >>> > >> > > > > > > > > useful > > > >>> > >> > > > > > > > > > > for > > > >>> > >> > > > > > > > > > > > > ASF > > > >>> > >> > > > > > > > > > > > > > > > > binaries > > > >>> > >> > > > > > > > > > > > > > > > > > > > > where > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > a > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > driver is supplied > > > after > > > >>> > >> Polaris > > > >>> > >> > is > > > >>> > >> > > > > > built. The > > > >>> > >> > > > > > > > > > > latter > > > >>> > >> > > > > > > > > > > > > is > > > >>> > >> > > > > > > > > > > > > > a > > > >>> > >> > > > > > > > > > > > > > > > > building > > > >>> > >> > > > > > > > > > > > > > > > > > > > > block > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > for future per > realm > > > >>> > >> datasources. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > I'm OK that > > > >>> Quarkus/Agroal > > > >>> > >> > remains > > > >>> > >> > > > the > > > >>> > >> > > > > > default > > > >>> > >> > > > > > > > > for > > > >>> > >> > > > > > > > > > > > > > > supported > > > >>> > >> > > > > > > > > > > > > > > > > > > backends. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > That's already > part > > of > > > >>> the > > > >>> > >> POC. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > The gap I'm trying > > to > > > >>> > address > > > >>> > >> is > > > >>> > >> > > > where > > > >>> > >> > > > > > those > > > >>> > >> > > > > > > > > > > > > assumptions > > > >>> > >> > > > > > > > > > > > > > no > > > >>> > >> > > > > > > > > > > > > > > > > longer > > > >>> > >> > > > > > > > > > > > > > > > > > > > > hold. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > Quarkus can select > > > from > > > >>> > >> > predefined > > > >>> > >> > > > > > > > > datasources, but > > > >>> > >> > > > > > > > > > > > > they > > > >>> > >> > > > > > > > > > > > > > > > still > > > >>> > >> > > > > > > > > > > > > > > > > > > need to > > > >>> > >> > > > > > > > > > > > > > > > > > > > > be > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > configured ahead > of > > > >>> time. It > > > >>> > >> > doesn't > > > >>> > >> > > > > > currently > > > >>> > >> > > > > > > > > > > > provide > > > >>> > >> > > > > > > > > > > > > > > > Polaris > > > >>> > >> > > > > > > > > > > > > > > > > > > with a > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > clean > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > way to create new > > > >>> > datasources > > > >>> > >> > > > > > dynamically. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > So my intent is > for > > > the > > > >>> > >> contract > > > >>> > >> > to > > > >>> > >> > > > be: > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > - > Quarkus/Agroal > > > >>> remains > > > >>> > >> the > > > >>> > >> > > > default. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > - Polaris > managed > > > >>> JDBC > > > >>> > is a > > > >>> > >> > JVM > > > >>> > >> > > > only > > > >>> > >> > > > > > escape > > > >>> > >> > > > > > > > > > > hatch > > > >>> > >> > > > > > > > > > > > > for > > > >>> > >> > > > > > > > > > > > > > > > > runtime > > > >>> > >> > > > > > > > > > > > > > > > > > > > > provided > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > drivers and > > > >>> dynamically > > > >>> > >> > created > > > >>> > >> > > > > > datasources. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > - Polaris owns > > the > > > >>> pool > > > >>> > and > > > >>> > >> > driver > > > >>> > >> > > > > > > > > lifecycle on > > > >>> > >> > > > > > > > > > > > that > > > >>> > >> > > > > > > > > > > > > > > path. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > - Per realm > > > >>> datasource > > > >>> > >> routing > > > >>> > >> > > > should > > > >>> > >> > > > > > be a > > > >>> > >> > > > > > > > > > > > separate > > > >>> > >> > > > > > > > > > > > > > > design > > > >>> > >> > > > > > > > > > > > > > > > > > > > > discussion. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > It's out of > scope > > > for > > > >>> > this > > > >>> > >> > POC. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > JB, I agree we > > should > > > >>> > continue > > > >>> > >> > using > > > >>> > >> > > > > > Quarkus > > > >>> > >> > > > > > > > > JDBC > > > >>> > >> > > > > > > > > > > > > drivers > > > >>> > >> > > > > > > > > > > > > > > for > > > >>> > >> > > > > > > > > > > > > > > > > the > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > backends > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > we support > directly. > > > >>> This > > > >>> > >> path is > > > >>> > >> > > > mainly > > > >>> > >> > > > > > for > > > >>> > >> > > > > > > > > the > > > >>> > >> > > > > > > > > > > > cases > > > >>> > >> > > > > > > > > > > > > > > > outside > > > >>> > >> > > > > > > > > > > > > > > > > that > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > model. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > Yufei > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > On Tue, Jul 7, > 2026 > > at > > > >>> > 8:03 AM > > > >>> > >> > > > > > Jean-Baptiste > > > >>> > >> > > > > > > > > > > Onofré < > > > >>> > >> > > > > > > > > > > > > > > > > > > [email protected]> > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > wrote: > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > Hi > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > Regarding JDBC > > > >>> drivers in > > > >>> > >> the > > > >>> > >> > > > Quarkus > > > >>> > >> > > > > > > > > ecosystem > > > >>> > >> > > > > > > > > > > (in > > > >>> > >> > > > > > > > > > > > > > > > > > > > > quarkus-extensions > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > or > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > quarkiverse), I > > > think > > > >>> we > > > >>> > can > > > >>> > >> > just > > > >>> > >> > > > > > leverage > > > >>> > >> > > > > > > > > the > > > >>> > >> > > > > > > > > > > > > quarkus > > > >>> > >> > > > > > > > > > > > > > > JDBC > > > >>> > >> > > > > > > > > > > > > > > > > > > drivers. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > Using another > > > loading > > > >>> > >> mechanism > > > >>> > >> > > > could > > > >>> > >> > > > > > be > > > >>> > >> > > > > > > > > > > > problematic > > > >>> > >> > > > > > > > > > > > > > for > > > >>> > >> > > > > > > > > > > > > > > > > future > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > features > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > (imagine with we > > > want > > > >>> to > > > >>> > try > > > >>> > >> > > > native app > > > >>> > >> > > > > > > > > buld). > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > What is the > > problem > > > >>> with > > > >>> > >> using > > > >>> > >> > the > > > >>> > >> > > > > > Quarkus > > > >>> > >> > > > > > > > > JDBC > > > >>> > >> > > > > > > > > > > > > > drivers? > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > I remember that > we > > > >>> agreed > > > >>> > >> to be > > > >>> > >> > > > > > opinionated > > > >>> > >> > > > > > > > > about > > > >>> > >> > > > > > > > > > > > the > > > >>> > >> > > > > > > > > > > > > > > JDBC > > > >>> > >> > > > > > > > > > > > > > > > > > > backends > > > >>> > >> > > > > > > > > > > > > > > > > > > > > we > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > want > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > to support, so > we > > > can > > > >>> be > > > >>> > >> > > > opinionated > > > >>> > >> > > > > > about > > > >>> > >> > > > > > > > > the > > > >>> > >> > > > > > > > > > > JDBC > > > >>> > >> > > > > > > > > > > > > > > drivers > > > >>> > >> > > > > > > > > > > > > > > > > :) > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > I'm not against > > it, > > > >>> but I > > > >>> > >> would > > > >>> > >> > > > like to > > > >>> > >> > > > > > > > > > > understand > > > >>> > >> > > > > > > > > > > > > > better > > > >>> > >> > > > > > > > > > > > > > > > the > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > rationale. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > Regards > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > JB > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > On Tue, Jul 7, > > 2026 > > > at > > > >>> > >> 3:03 PM > > > >>> > >> > > > Robert > > > >>> > >> > > > > > Stupp < > > > >>> > >> > > > > > > > > > > > > > > > [email protected]> > > > >>> > >> > > > > > > > > > > > > > > > > > > wrote: > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > Thanks for > > pushing > > > >>> this > > > >>> > >> > forward. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > I agree that > > > >>> > >> runtime-provided > > > >>> > >> > > > JDBC > > > >>> > >> > > > > > drivers > > > >>> > >> > > > > > > > > are > > > >>> > >> > > > > > > > > > > a > > > >>> > >> > > > > > > > > > > > > real > > > >>> > >> > > > > > > > > > > > > > > > > problem > > > >>> > >> > > > > > > > > > > > > > > > > > > to > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > solve. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > For > > > ASF-distributed > > > >>> > >> binaries, > > > >>> > >> > > > there > > > >>> > >> > > > > > are > > > >>> > >> > > > > > > > > valid > > > >>> > >> > > > > > > > > > > > cases > > > >>> > >> > > > > > > > > > > > > > > where > > > >>> > >> > > > > > > > > > > > > > > > > > > Polaris > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > should > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > not bundle a > > > >>> driver, but > > > >>> > >> > > > operators > > > >>> > >> > > > > > still > > > >>> > >> > > > > > > > > need a > > > >>> > >> > > > > > > > > > > > way > > > >>> > >> > > > > > > > > > > > > > to > > > >>> > >> > > > > > > > > > > > > > > > > provide > > > >>> > >> > > > > > > > > > > > > > > > > > > one. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > My concern is > > that > > > >>> this > > > >>> > PR > > > >>> > >> > does > > > >>> > >> > > > more > > > >>> > >> > > > > > than > > > >>> > >> > > > > > > > > load > > > >>> > >> > > > > > > > > > > > > > runtime > > > >>> > >> > > > > > > > > > > > > > > > > driver > > > >>> > >> > > > > > > > > > > > > > > > > > > jars. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > It also > > > introduces a > > > >>> > >> second > > > >>> > >> > > > > > datasource > > > >>> > >> > > > > > > > > stack: > > > >>> > >> > > > > > > > > > > > > > > > > Quarkus/Agroal > > > >>> > >> > > > > > > > > > > > > > > > > > > via > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> `quarkus.datasource.*` > > > >>> > on > > > >>> > >> one > > > >>> > >> > > > side, > > > >>> > >> > > > > > and > > > >>> > >> > > > > > > > > > > > > Polaris-owned > > > >>> > >> > > > > > > > > > > > > > > > > Hikari > > > >>> > >> > > > > > > > > > > > > > > > > > > pools > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > via > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > `polaris.persistence.relational.jdbc.*` on > > > >>> > >> > > > > > > > > the > > > >>> > >> > > > > > > > > > > > > other. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > Those two > paths > > > look > > > >>> > >> similar > > > >>> > >> > to > > > >>> > >> > > > > > operators, > > > >>> > >> > > > > > > > > but > > > >>> > >> > > > > > > > > > > > they > > > >>> > >> > > > > > > > > > > > > > do > > > >>> > >> > > > > > > > > > > > > > > > not > > > >>> > >> > > > > > > > > > > > > > > > > > > have the > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > same > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > contract. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > The Quarkus > path > > > >>> brings > > > >>> > >> > > > > > Quarkus/Agroal > > > >>> > >> > > > > > > > > > > lifecycle, > > > >>> > >> > > > > > > > > > > > > > > health, > > > >>> > >> > > > > > > > > > > > > > > > > > > metrics, > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > credentials/secret-manager > > > >>> > >> > > > > > integrations, > > > >>> > >> > > > > > > > > and > > > >>> > >> > > > > > > > > > > the > > > >>> > >> > > > > > > > > > > > > > > broader > > > >>> > >> > > > > > > > > > > > > > > > > > > datasource > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > config > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > surface; those > > are > > > >>> all > > > >>> > >> > important > > > >>> > >> > > > for > > > >>> > >> > > > > > > > > operators. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > The > > > Polaris-managed > > > >>> path > > > >>> > >> > means > > > >>> > >> > > > > > Polaris owns > > > >>> > >> > > > > > > > > > > pool > > > >>> > >> > > > > > > > > > > > > > > > lifecycle, > > > >>> > >> > > > > > > > > > > > > > > > > > > driver > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > loading, > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > classloader > > > >>> behavior, > > > >>> > and > > > >>> > >> a > > > >>> > >> > > > separate > > > >>> > >> > > > > > > > > > > > config/support > > > >>> > >> > > > > > > > > > > > > > > > > surface. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > So I do not > > think > > > >>> this > > > >>> > is > > > >>> > >> > ready > > > >>> > >> > > > to > > > >>> > >> > > > > > move > > > >>> > >> > > > > > > > > forward > > > >>> > >> > > > > > > > > > > > as > > > >>> > >> > > > > > > > > > > > > > just > > > >>> > >> > > > > > > > > > > > > > > > > > > “another > > > >>> > >> > > > > > > > > > > > > > > > > > > > > JDBC > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > configuration > > > >>> option.” > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > Before I would > > > >>> consider > > > >>> > >> this > > > >>> > >> > > > > > mergeable, I > > > >>> > >> > > > > > > > > think > > > >>> > >> > > > > > > > > > > > we > > > >>> > >> > > > > > > > > > > > > > need > > > >>> > >> > > > > > > > > > > > > > > > > > > explicit > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > agreement > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > on the > contract: > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > 1. Is > > > >>> Polaris-managed > > > >>> > JDBC > > > >>> > >> > only a > > > >>> > >> > > > > > narrow > > > >>> > >> > > > > > > > > escape > > > >>> > >> > > > > > > > > > > > > hatch > > > >>> > >> > > > > > > > > > > > > > > for > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > runtime-provided > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > driver jars, > or > > a > > > >>> peer > > > >>> > >> > supported > > > >>> > >> > > > > > datasource > > > >>> > >> > > > > > > > > > > path? > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > 2. Which > > > >>> Quarkus/Agroal > > > >>> > >> > > > integrations > > > >>> > >> > > > > > are > > > >>> > >> > > > > > > > > > > > > > intentionally > > > >>> > >> > > > > > > > > > > > > > > > not > > > >>> > >> > > > > > > > > > > > > > > > > > > > > available > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > on > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > that path? > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > 3. What > > lifecycle > > > >>> does > > > >>> > >> > Polaris > > > >>> > >> > > > own > > > >>> > >> > > > > > for > > > >>> > >> > > > > > > > > pools, > > > >>> > >> > > > > > > > > > > > > loaded > > > >>> > >> > > > > > > > > > > > > > > > > drivers, > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > shutdown, > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > and > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > driver > upgrades? > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > 4. Is this > meant > > > to > > > >>> be > > > >>> > >> part > > > >>> > >> > of > > > >>> > >> > > > future > > > >>> > >> > > > > > > > > per-realm > > > >>> > >> > > > > > > > > > > > > > > > datasource > > > >>> > >> > > > > > > > > > > > > > > > > > > routing? > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > If > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > so, > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > I think that > > > needs a > > > >>> > >> separate > > > >>> > >> > > > design > > > >>> > >> > > > > > > > > > > discussion. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > Until that > > > contract > > > >>> is > > > >>> > >> > agreed, I > > > >>> > >> > > > do > > > >>> > >> > > > > > not > > > >>> > >> > > > > > > > > think > > > >>> > >> > > > > > > > > > > we > > > >>> > >> > > > > > > > > > > > > > should > > > >>> > >> > > > > > > > > > > > > > > > > present > > > >>> > >> > > > > > > > > > > > > > > > > > > > > this > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > as a > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > second > supported > > > >>> JDBC > > > >>> > >> path or > > > >>> > >> > > > treat > > > >>> > >> > > > > > the PR > > > >>> > >> > > > > > > > > as > > > >>> > >> > > > > > > > > > > > > > mergeable > > > >>> > >> > > > > > > > > > > > > > > > > with > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > documentation > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > updates alone. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > On Tue, Jul 7, > > > 2026 > > > >>> at > > > >>> > >> > 3:48 AM > > > >>> > >> > > > Dmitri > > > >>> > >> > > > > > > > > > > > Bourlatchkov > > > >>> > >> > > > > > > > > > > > > < > > > >>> > >> > > > > > > > > > > > > > > > > > > > > [email protected] > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > wrote: > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > Hi Yufei, > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > Thanks for > the > > > >>> update. > > > >>> > >> That > > > >>> > >> > > > > > approach to > > > >>> > >> > > > > > > > > > > loading > > > >>> > >> > > > > > > > > > > > > the > > > >>> > >> > > > > > > > > > > > > > > > > driver > > > >>> > >> > > > > > > > > > > > > > > > > > > can > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > work, I > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > think. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > However, I'm > > not > > > >>> sure > > > >>> > >> > whether > > > >>> > >> > > > it is > > > >>> > >> > > > > > > > > > > preferable > > > >>> > >> > > > > > > > > > > > > to a > > > >>> > >> > > > > > > > > > > > > > > > > proper > > > >>> > >> > > > > > > > > > > > > > > > > > > > > Quarkus > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > downstream > > > build. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > Adding jars > to > > > >>> Polaris > > > >>> > >> > still > > > >>> > >> > > > > > requires > > > >>> > >> > > > > > > > > some > > > >>> > >> > > > > > > > > > > form > > > >>> > >> > > > > > > > > > > > > of > > > >>> > >> > > > > > > > > > > > > > > > > downstream > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > build, > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > whether it > is > > > >>> > tar-based > > > >>> > >> or > > > >>> > >> > > > > > docker-based. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > Performing a > > > full > > > >>> > >> Quarkus > > > >>> > >> > build > > > >>> > >> > > > > > > > > downstream > > > >>> > >> > > > > > > > > > > > offers > > > >>> > >> > > > > > > > > > > > > > > some > > > >>> > >> > > > > > > > > > > > > > > > > > > > > advantages, > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > though: > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > * > Integration > > > >>> tests > > > >>> > can > > > >>> > >> be > > > >>> > >> > > > > > executed with > > > >>> > >> > > > > > > > > the > > > >>> > >> > > > > > > > > > > > > > specific > > > >>> > >> > > > > > > > > > > > > > > > > driver. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > * > Dependencies > > > are > > > >>> > >> > resolved / > > > >>> > >> > > > > > validated > > > >>> > >> > > > > > > > > at > > > >>> > >> > > > > > > > > > > > build > > > >>> > >> > > > > > > > > > > > > > > time. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > * Quarkus > > > manages > > > >>> the > > > >>> > >> > > > DataSource > > > >>> > >> > > > > > > > > lifecycle. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > I wonder > what > > > >>> other > > > >>> > >> people > > > >>> > >> > > > think > > > >>> > >> > > > > > too. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > Cheers, > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > Dmitri. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > On Mon, Jul > 6, > > > >>> 2026 at > > > >>> > >> > 9:22 PM > > > >>> > >> > > > > > Yufei Gu < > > > >>> > >> > > > > > > > > > > > > > > > > > > [email protected]> > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > wrote: > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > Hi Dmitri, > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > Good > catch. > > > The > > > >>> > >> initial > > > >>> > >> > POC > > > >>> > >> > > > only > > > >>> > >> > > > > > > > > proved the > > > >>> > >> > > > > > > > > > > > > > driver > > > >>> > >> > > > > > > > > > > > > > > > > works if > > > >>> > >> > > > > > > > > > > > > > > > > > > > > it’s > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > already > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > visible to > > the > > > >>> > runtime > > > >>> > >> > > > > > classloader. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > I updated > > the > > > >>> > approach > > > >>> > >> > so the > > > >>> > >> > > > > > > > > > > Polaris-managed > > > >>> > >> > > > > > > > > > > > > > JDBC > > > >>> > >> > > > > > > > > > > > > > > > > > > datasource > > > >>> > >> > > > > > > > > > > > > > > > > > > > > can > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > load > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > driver > jars > > > >>> > explicitly > > > >>> > >> > before > > > >>> > >> > > > > > creating > > > >>> > >> > > > > > > > > > > > Hikari. > > > >>> > >> > > > > > > > > > > > > In > > > >>> > >> > > > > > > > > > > > > > > the > > > >>> > >> > > > > > > > > > > > > > > > > > > binary > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > distribution, > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > users can > > drop > > > >>> jars > > > >>> > >> into: > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> server/jdbc-drivers/ > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > For > > admin-tool > > > >>> > >> > > > bootstrap/purge, > > > >>> > >> > > > > > the > > > >>> > >> > > > > > > > > same > > > >>> > >> > > > > > > > > > > > > applies > > > >>> > >> > > > > > > > > > > > > > > > under: > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> admin/jdbc-drivers/ > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > They can > > also > > > >>> > override > > > >>> > >> > the > > > >>> > >> > > > > > location > > > >>> > >> > > > > > > > > with: > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > >>> > >> > > > > > > > > >>> > >> > > > > > > >>> > >> > > > > >>> > >> > > > >>> > > > > >>> > > > > > > polaris.persistence.relational.jdbc.driver-directory=/path/to/jdbc-drivers > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > So this > does > > > not > > > >>> > >> depend > > > >>> > >> > on > > > >>> > >> > > > > > adding jars > > > >>> > >> > > > > > > > > to > > > >>> > >> > > > > > > > > > > > > > lib/main > > > >>> > >> > > > > > > > > > > > > > > or > > > >>> > >> > > > > > > > > > > > > > > > > > > > > rebuilding > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > the > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > Quarkus > > > fast-jar > > > >>> > >> > metadata. > > > >>> > >> > > > The > > > >>> > >> > > > > > jar just > > > >>> > >> > > > > > > > > > > needs > > > >>> > >> > > > > > > > > > > > > to > > > >>> > >> > > > > > > > > > > > > > be > > > >>> > >> > > > > > > > > > > > > > > > > present > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > before > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > Polaris > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > creates > the > > > >>> > >> datasource. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > Yufei > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > On Mon, > Jul > > 6, > > > >>> 2026 > > > >>> > at > > > >>> > >> > > > 3:25 PM > > > >>> > >> > > > > > Dmitri > > > >>> > >> > > > > > > > > > > > > > Bourlatchkov > > > >>> > >> > > > > > > > > > > > > > > < > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > [email protected] > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > wrote: > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > Hi > Yufei, > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > Could > you > > > >>> provide > > > >>> > >> some > > > >>> > >> > more > > > >>> > >> > > > > > details > > > >>> > >> > > > > > > > > about > > > >>> > >> > > > > > > > > > > > how > > > >>> > >> > > > > > > > > > > > > > > > > exactly a > > > >>> > >> > > > > > > > > > > > > > > > > > > 3rd > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > party > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > JDBC > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > driver > is > > > >>> > >> incorporated > > > >>> > >> > into > > > >>> > >> > > > > > Polaris? > > > >>> > >> > > > > > > > > I > > > >>> > >> > > > > > > > > > > > might > > > >>> > >> > > > > > > > > > > > > > have > > > >>> > >> > > > > > > > > > > > > > > > > missed > > > >>> > >> > > > > > > > > > > > > > > > > > > that > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > in > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > the > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > PR, > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > but it > was > > > not > > > >>> > >> > apparent to > > > >>> > >> > > > me > > > >>> > >> > > > > > at > > > >>> > >> > > > > > > > > first > > > >>> > >> > > > > > > > > > > > > reading. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > Thanks, > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > Dmitri. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > On Mon, > > Jul > > > 6, > > > >>> > 2026 > > > >>> > >> at > > > >>> > >> > > > 6:22 PM > > > >>> > >> > > > > > Yufei > > > >>> > >> > > > > > > > > Gu < > > > >>> > >> > > > > > > > > > > > > > > > > > > > > [email protected]> > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > wrote: > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > Hi > all, > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > I put > > > >>> together a > > > >>> > >> > small > > > >>> > >> > > > POC( > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > https://github.com/apache/polaris/pull/4984 > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > ) > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > for > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > the > > > >>> relational > > > >>> > >> JDBC > > > >>> > >> > > > backend > > > >>> > >> > > > > > so > > > >>> > >> > > > > > > > > Polaris > > > >>> > >> > > > > > > > > > > > can > > > >>> > >> > > > > > > > > > > > > > > create > > > >>> > >> > > > > > > > > > > > > > > > > its > > > >>> > >> > > > > > > > > > > > > > > > > > > own > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > JDBC > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > datasource > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > from > > > config, > > > >>> > >> instead > > > >>> > >> > of > > > >>> > >> > > > > > always > > > >>> > >> > > > > > > > > relying > > > >>> > >> > > > > > > > > > > on > > > >>> > >> > > > > > > > > > > > > the > > > >>> > >> > > > > > > > > > > > > > > > > Quarkus > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > datasource. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > The > > config > > > >>> looks > > > >>> > >> like > > > >>> > >> > > > this: > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > >>> > >> > > > > > > >>> polaris.persistence.relational.jdbc.jdbc-url=jdbc:postgresql://... > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > >>> > >> > > > polaris.persistence.relational.jdbc.driver=org.postgresql.Driver > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > >>> > >> polaris.persistence.relational.jdbc.username=... > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > >>> > >> polaris.persistence.relational.jdbc.password=... > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > If > > > jdbc-url > > > >>> is > > > >>> > >> set, > > > >>> > >> > > > Polaris > > > >>> > >> > > > > > > > > creates and > > > >>> > >> > > > > > > > > > > > > owns > > > >>> > >> > > > > > > > > > > > > > > the > > > >>> > >> > > > > > > > > > > > > > > > > Hikari > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > datasource. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > If > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > it > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > is not > > > set, > > > >>> we > > > >>> > >> keep > > > >>> > >> > > > using the > > > >>> > >> > > > > > > > > existing > > > >>> > >> > > > > > > > > > > > > > Quarkus > > > >>> > >> > > > > > > > > > > > > > > > > > > datasource > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > path. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > I also > > > added > > > >>> > tests > > > >>> > >> > > > showing > > > >>> > >> > > > > > that: > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > - > We > > > can > > > >>> > create > > > >>> > >> > > > > > datasources > > > >>> > >> > > > > > > > > > > > dynamically > > > >>> > >> > > > > > > > > > > > > > from > > > >>> > >> > > > > > > > > > > > > > > > > config > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > - > > > >>> Different > > > >>> > >> > > > > > configurations can > > > >>> > >> > > > > > > > > > > create > > > >>> > >> > > > > > > > > > > > > > > > > independent > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > datasources, > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > which > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > could > > > >>> help > > > >>> > >> future > > > >>> > >> > > > > > per-realm > > > >>> > >> > > > > > > > > > > datasource > > > >>> > >> > > > > > > > > > > > > > > support > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > - A > > > JDBC > > > >>> > driver > > > >>> > >> > can be > > > >>> > >> > > > > > supplied > > > >>> > >> > > > > > > > > at > > > >>> > >> > > > > > > > > > > > > runtime > > > >>> > >> > > > > > > > > > > > > > > > from > > > >>> > >> > > > > > > > > > > > > > > > > a > > > >>> > >> > > > > > > > > > > > > > > > > > > jar > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > instead > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > of > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > being > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > on > > the > > > >>> > >> build-time > > > >>> > >> > > > > > classpath. > > > >>> > >> > > > > > > > > This is > > > >>> > >> > > > > > > > > > > > > very > > > >>> > >> > > > > > > > > > > > > > > > > helpful > > > >>> > >> > > > > > > > > > > > > > > > > > > for > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > proprietary > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > and > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Apache > > > >>> > >> > > > > > license-incompatible > > > >>> > >> > > > > > > > > drivers, > > > >>> > >> > > > > > > > > > > > > like > > > >>> > >> > > > > > > > > > > > > > > > MySQL. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > This > POC > > > >>> does > > > >>> > not > > > >>> > >> yet > > > >>> > >> > > > > > implement > > > >>> > >> > > > > > > > > full > > > >>> > >> > > > > > > > > > > > > > per-realm > > > >>> > >> > > > > > > > > > > > > > > > > > > datasource > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > routing. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > It > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > only > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> demonstrates the > > > >>> > >> > > > lower-level > > > >>> > >> > > > > > > > > building > > > >>> > >> > > > > > > > > > > > > blocks: > > > >>> > >> > > > > > > > > > > > > > > > > Polaris > > > >>> > >> > > > > > > > > > > > > > > > > > > can > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > create > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > managed > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > JDBC > > pools > > > >>> from > > > >>> > >> > config, > > > >>> > >> > > > > > multiple > > > >>> > >> > > > > > > > > pools > > > >>> > >> > > > > > > > > > > > can > > > >>> > >> > > > > > > > > > > > > be > > > >>> > >> > > > > > > > > > > > > > > > > created > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > independently, > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > and > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > the > JDBC > > > >>> driver > > > >>> > >> can > > > >>> > >> > be > > > >>> > >> > > > > > supplied at > > > >>> > >> > > > > > > > > > > > runtime. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Feedback > > > is > > > >>> > >> welcome > > > >>> > >> > > > before I > > > >>> > >> > > > > > turn > > > >>> > >> > > > > > > > > this > > > >>> > >> > > > > > > > > > > > > into a > > > >>> > >> > > > > > > > > > > > > > > > > formal > > > >>> > >> > > > > > > > > > > > > > > > > > > PR. > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Thanks, > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > Yufei > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > > > >>> > >> > > > > > > > > > > > >>> > >> > > > > > > > > > > > >>> > >> > > > > > > > > >>> > >> > > > > > > > > >>> > >> > > > > > > >>> > >> > > > > >>> > >> > > > >>> > > > > > >>> > > > > >>> > > > >> > > > > > >
