Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate an R2DBC implementation [JDBC581] #612

Open
firebird-automations opened this issue Apr 16, 2019 · 2 comments
Open

Investigate an R2DBC implementation [JDBC581] #612

firebird-automations opened this issue Apr 16, 2019 · 2 comments

Comments

@firebird-automations
Copy link

Submitted by: Mark Paluch (mp911de)

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.

@firebird-automations
Copy link
Author

Commented by: @mrotteveel

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.

@firebird-automations
Copy link
Author

Commented by: Mark Paluch (mp911de)

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants