Issue Details (XML | Word | Printable)

Key: JDBC-581
Type: New Feature New Feature
Status: Open Open
Priority: Minor Minor
Assignee: Mark Rotteveel
Reporter: Mark Paluch
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Jaybird JCA/JDBC Driver

Investigate an R2DBC implementation

Created: 16/Apr/19 07:42 AM   Updated: 17/Apr/19 06:31 AM
Component/s: None
Affects Version/s: None
Fix Version/s: None


 Description  « Hide
At SpringOne 2018 we've announced a new effort named R2DBC to bring Java-based, reactive database access to relational databases. R2DBC is for reactive usage what JDBC is for imperative/blocking usage.

A few resources to get you started:
 * The project organization can be found [on Github|https://github.com/r2dbc] and contains the SPI a client API as well as Postgres, SQL Server, and H2 implementation.
 * The keynote section announcing R2DBC can be found [here|https://www.youtube.com/watch?v=E3s5f-JF8z4]
 * An [in depth session on the topic|https://www.youtube.com/watch?v=idApf9DMdfk] was held by [@nebhale|https://github.com/nebhale] which is basically _the_ introduction you can get.
 * There's a [public mailing list|https://groups.google.com/forum/#!forum/r2dbc] and our [R2DBC website|https://r2dbc.io] that contain additional resources.
 * There's the [Spring Data R2DBC project|https://github.com/spring-projects/spring-data-r2dbc] that has a [good overview|https://github.com/spring-projects/spring-data-r2dbc] in its README.

Feel free to ping me back on help to get started or if you want to learn more.

 All   Comments   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Mark Rotteveel added a comment - 16/Apr/19 04:38 PM
Thanks, I'm certainly interested, but I currently don't have a lot of time and energy to work on something like this. I'd also be interested how it compares to the competing ADBA proposal by Oracle.

To set expectations This might be on my todo list for quite a long time unless someone else comes along to try their hand at this.


Mark Paluch added a comment - 17/Apr/19 06:31 AM
Both ADBA and R2DBC aim for non-blocking I/O. ADBA exposes async APIs, R2DBC exposes reactive ones. That manifests in ADBA communicating rows at a granularity of CompletableFuture<List<Row>> whereas R2DBC emits Row by Row (Publisher<Row>) while decoding a response stream. ADBA has some extension to also allow Publisher-based operations but that is an optional extension.

In any case, R2DBC allows you to reduce and aggregate results to a Future whereas the other way round isn't possible without feature loss. Another thing, that plays into R2DBC is that it is available as milestone builds and R2DBC is Apache v2 licensed.