SPI vs Third party dependency

Jens Schauder jschauder at pivotal.io
Tue Oct 17 07:29:08 UTC 2017

Sorry if I'm a little dense but there is something I don't really

The existing JDBC, as well as the upcoming new version, is what I consider
an SPI: a set of interfaces plus rules how they should behave, which won't
get implemented in the JDK itself. Instead, other parties (in this case
probably database vendors) will provide implementations.

In my eyes, the Flow API as well is such an SPI. It is intended to get
implemented by third parties.

Yet you don't want to depend on it although it seems to fit the
requirements quite well, especially "Maximum throughput with low and stable

So my question is: what is the fundamental difference between the Flow API
and the new async JDBC that makes it ok for one to depend on third-party
implementations and the other not?

Also, if this difference is relevant beyond the scope of JDBC the question
arises how/if the Flow API is supposed to be used at all in the JDK?
Although that question might be better suited for a different mailing list?

Just to make sure: I'm not trying to change anybody's mind. I'm just trying
to understand the underlying principles for those decisions.

Jens Schauder

More information about the jdbc-spec-discuss mailing list