R2DBC is an endeavor to bring a reactive programming API to relational data stores. It was first announced at SpringOne Platform 2018, as shown in the keynote below:
- Reactive Streams - R2DBC is founded on Reactive Streams providing an asynchronous, non-blocking API.
- Relational Databases - R2DBC engages relational databases with a reactive API, something not possible with the blocking nature of JDBC and JPA.
- Scalable Solutions - Reactive Streams makes it possible to move from the classic one thread per connection approach to a more powerful, more scalable approach.
|Feature Matrix||H2 (in-memory)||PostgreSQL||MS SQL Server|
|Broad type conversion||X||X||X|
|URI-based implement selection|
|Observability||Through R2DBC Proxy||Through R2DBC Proxy||Through R2DBC Proxy|
Relational meets Reactive
People wanting to scale while retaining usage of relational databases are cut off from reactive programming due to existing standards. R2DBC introduces a new API that allows asynchronous, non-blocking code that work efficiently with relational databases.
R2DBC supports cloud native apps where relational databases like PostgreSQL, MySQL, and others are found. Have the freedom to pick the right one for the job and not be confined by API.
While led by members of the Spring team at Pivotal, R2DBC depends upon community support. Contributors from all relational data stores are invited to participate in building a reactive, relational future.