-
Notifications
You must be signed in to change notification settings - Fork 1k
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
docs: klip-62: Ruby client #8865
docs: klip-62: Ruby client #8865
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @LapoElisacci ! a few comments
## What is in scope | ||
|
||
* A lightweight but complete and configurable Ruby client. | ||
* Support for both synchronous and asynchronous queries. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
instead of sync + async queries, we can point out the types of queries (persistent, transient, pull) and if we want to provide sync+async versions of all of them
|
||
## Public APIS | ||
|
||
N/A |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we should explicitly point out the APIs for the clients that we want to expose here. For eg: executeQuery()
for batch results, streamQuery()
for streaming results etc. The reference for the java client is here https://docs.ksqldb.io/en/latest/developer-guide/ksqldb-clients/java-client/
Both unit and integration tests. | ||
All currenlty available ksqlDB statements will get properly tested. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@LapoElisacci it will be helpful to elaborate a bit on the kinds of statements that we want to test. This will help to sanity check if we are covering the domain of the ksqlDB queries that we are interested in. Some classes of queries that come to mind:
-
Persistent queries:
CSAS
,CTAS
etc. -
Transient Queries: Push queries
-
Pull Queries: Over streams and tables.
Both unit and integration tests. | ||
All currenlty available ksqlDB statements will get properly tested. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@LapoElisacci it will be helpful to elaborate a bit on the kinds of statements that we want to test. This will help to sanity check if we are covering the domain of the ksqlDB queries that we are interested in. Some classes of queries that come to mind:
-
Persistent queries:
CSAS
,CTAS
etc. -
Transient Queries: Push queries
-
Pull Queries: Over streams and tables.
|
||
## LOEs and Delivery Milestones | ||
|
||
TBD |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you have an LOE in mind right now? It will be helpful to break the implementation down into several chunks. We can start off with queries that can be returned in a batched result (pull queries and push queries with a LIMIT clause). Then we can target steaming queries (general push queries) and persistent queries after that as an example.
|
||
## LOEs and Delivery Milestones | ||
|
||
TBD |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you have an LOE in mind right now? It will be helpful to break the implementation down into several chunks. We can start off with queries that can be returned in a batched result (pull queries and push queries with a LIMIT clause). Then we can target steaming queries (general push queries) and persistent queries after that as an example.
Hey @cprasad1 @AlanConfluent, I've updated the KLIP with some other details, let me know if you need something else to be further clarified. The Gem beta code is available here https://github.com/LapoElisacci/Ksql, most of the endpoints have already been covered. Thanks |
Hi @cprasad1, any updates on this one? I've covered with tests and released the Gem, you can find it on Github https://github.com/LapoElisacci/Ksql as well as on RubyGems |
Thanks @LapoElisacci ! Thanks for the contribution. I have merged the klip |
Description
We want to develop a Ruby client to interact with KsqlDB.
The first step would be to map the ksqlDB REST API Endpoints to HTTP2 Client methods.
A further improvement would be to develop an ORM to dynamically build the SQL string to be sent to the API.
Testing done
Describe the testing strategy. Unit and integration tests are expected for any behavior changes.
Reviewer checklist