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

Helidon DB Client #581

Open
tomas-langer opened this issue Apr 16, 2019 · 5 comments
Assignees
Labels
P3 SE db
Projects

Comments

@tomas-langer
Copy link
Member

@tomas-langer tomas-langer commented Apr 16, 2019

This is a tracking issue for Helidon DB API and implementation.

Overall the implementation should follow the Development guidelines and:

  • The implementation is full reactive and nonblocking
  • There should be no dependency of the API or core on Tracing (not even Opentracing API)
  • There should be no dependency of the API or core on Metrics
  • There should be no dependency of the API or core on Healthchecks
  • Rest will be defined in One pager

Tasks:

  • One Pager
  • API design
  • Core implementation
  • Implementation over JDBC
  • Metrics support (library + example)
  • Tracing support (library + example)
  • Health check support (library + example)
  • Documentation
  • Graal VM support
  • Implementation over Mongo reactive driver
  • Implementation over R2DBC
@tomas-langer tomas-langer self-assigned this Apr 16, 2019
@tomas-langer tomas-langer added this to Needs triage in Backlog via automation Apr 16, 2019
@tomas-langer

This comment has been minimized.

Copy link
Member Author

@tomas-langer tomas-langer commented Apr 18, 2019

Depends on #596

@tomas-langer

This comment has been minimized.

Copy link
Member Author

@tomas-langer tomas-langer commented Apr 18, 2019

Depends on #473

@m0mus m0mus moved this from Needs triage to Normal priority in Backlog Apr 18, 2019
@tomas-langer tomas-langer moved this from Normal priority to In Progress in Backlog Apr 25, 2019
@tomas-langer tomas-langer added the P3 label Apr 25, 2019
This was referenced Apr 26, 2019
@tomas-langer

This comment has been minimized.

Copy link
Member Author

@tomas-langer tomas-langer commented May 5, 2019

TODOs:

All

  • Unit tests...
  •  The code is now an advanced POC - must revisit most of the code to make sure it is production quality
  •  Statement parsing (when using named params in JDBC and any params in Mongo) - the usage of a state machine is very complicated. Could we maybe live with a regular expression and limitations on what can be in the statement (such as "no comments allowed in statements")? If not, The implementation must be done again and according to our code guidelines (and also a lot lot more readable)
  • Add all new modules to bom pom.xml

Core and Common

  • Find a good way to stream results to web server (see DbResultSupport in both examples)
  • Make sure all error states are correctly propagated to interceptors and to user

JDBC

  • Use a connection pool (see ConnectionPool interface, line 90) - and add appropriate documentation of configurable options
  • Implement support for mapping of DbRowResult (see mongoDB impl)
  • Document configuration properties of the JdbcDbProviderBuilder
  • Make sure the Flow API is correctly implemented

Mongo

  • In MongoDbStatementDml - see TODO
  • Make sure the backpressure is correctly implemented in MongoDbStatementQuery
@tomas-langer

This comment has been minimized.

Copy link
Member Author

@tomas-langer tomas-langer commented May 10, 2019

DB was not chosen wisely - it looks like a Database implementation.
We are creating a "Reactive DB Client" so we should rename the modules, packages and classes to reflect that

@spericas

This comment has been minimized.

Copy link
Member

@spericas spericas commented May 10, 2019

@tomas-langer Yes. I'd say "Reactive DB API" or "Reactive DB Client API". To me the Client is what you write for each DB itself.

@edbratt edbratt changed the title Helidon DB Helidon DB Client Aug 23, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Backlog
  
In Progress
3 participants
You can’t perform that action at this time.