ydb-platform / ydb-platform/ydb-java-sdk
R2DBC driver
Open
@Kuleshovegor is already working on this.
Since Jan 31, 2024.
student-projects
- Dominant language
- Java
- Stars
- 53
- Forks
- 40
- Avg merge
- 9h 51m
- Merged PRs (30d)
- 7
Description
R2DBC (Reactive Relational Database Connectivity) is a reactive API specification for SQL databases. It provides a non-blocking and reactive way to interact with relational databases.
Roadmap below:
- Research and understand the database dialect
- SQL syntax
- YDB Data types map to Java Types, implement io.r2dbc.spi.Type
- other language-specific features YQL
- Study R2DBC specification. Existing dialect implementations.
- PostgreSQL R2DBC - https://github.com/pgjdbc/r2dbc-postgresql. The perfect solution from the founders of R2DBC.
- Clickhouse R2DBC - https://github.com/ClickHouse/clickhouse-java/tree/main/clickhouse-r2dbc. Community implementation. Don't support transactions, and more features.
- Design the architecture
- The driver implementation will be built using the YDB Java SDK v2.
- Connection != YDB Session. Because the connection is active until the close method is called.
Connection have next state - InTransaction, OutTransaction, Close.
- Implement the core API - R2DBC SPI
- io.r2dbc.spi.ConnectionFactory
- io.r2dbc.spi.ConnectionFactoryMetadata
- io.r2dbc.spi.ConnectionFactoryProvider
- io.r2dbc.spi.Result
- io.r2dbc.spi.Row
- io.r2dbc.spi.RowMetadata
- io.r2dbc.spi.Batch
- io.r2dbc.spi.Connection
- io.r2dbc.spi.Statement
-
Testing
-
Documentation.
-
Release candidate.
Document the usage, configuration options, and any database-specific features of YDB R2DBC driver to help users and developers understand how to use it effectively.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.