-
Notifications
You must be signed in to change notification settings - Fork 36
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
Introduce Valkey client overview #164
base: main
Are you sure you want to change the base?
Conversation
asafpamzn
commented
Aug 17, 2024
- Created a new document that provides an overview of recommended Valkey clients across various programming languages.
- Included mandatory features required for each client, such as Cluster Support and TLS/SSL Support.
- Detailed advanced features supported by the clients, including:
- Read from Replica
- Exponential Backoff to Prevent Storm
- Valkey Version Compatibility
- PubSub State Restoration
- Cluster Scan
- Latency-Based Read from Replica
- Client-Side Caching
- Added feature comparison tables for each programming language (Python, JavaScript/Node.js, Java, Go, PHP, C#) to highlight the unique capabilities of each client.
- Placeholder sections for Ruby and other languages marked as TODO for future updates.
- References section includes a link to the official Valkey documentation.
@asafpamzn Thank you for that initiative. it was discussed several times that we need some feature support metric for known clients. Several high level remarks:
|
@ranshid , thanks for the feedback.
|
@ranshid , @zuiderkwast , I updated the PR according to your comments. |
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.
I like the summary overall. @rueian @yangbodong22011 Would also be great if you can review this.
I think we can put all clients
|
I like this idea. If the table is large, it can be messy to maintain it as Markdown. If we have one JSON file per client (like we have for the old redis clients still in this repo), we could add this information in the JSON files and render the table on the website. |
agree👍 |
I don't agree, usually customers are first choosing the language and next the client, the client is a small part at the application, basically a driver. I don't think that the average reader will care about clients in other languages. I do agree that for the valkey maintainers it is a better view. |
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.
lgtm
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 need to decide where to put this document.
- Created a new document that provides an overview of recommended Valkey clients across various programming languages. - Included mandatory features required for each client, such as Cluster Support and TLS/SSL Support. - Detailed advanced features supported by the clients, including: - Read from Replica - Exponential Backoff to Prevent Storm - Valkey Version Compatibility - PubSub State Restoration - Cluster Scan - Latency-Based Read from Replica - Client-Side Caching - Added feature comparison tables for each programming language (Python, JavaScript/Node.js, Java, Go, PHP, C#) to highlight the unique capabilities of each client. - Placeholder sections for Ruby and other languages marked as TODO for future updates. - References section includes a link to the official Valkey documentation. Signed-off-by: asafpamzn <[email protected]>
Co-authored-by: Avi Fenesh <[email protected]> Signed-off-by: asafpamzn <[email protected]>
…#159) Update cluster-slots docs ref: valkey-io/valkey#265 --------- Signed-off-by: Roshan Khatri <[email protected]> Signed-off-by: Madelyn Olson <[email protected]> Co-authored-by: Madelyn Olson <[email protected]> Signed-off-by: asafpamzn <[email protected]>
Add documentation for the new `info stats` fields. --------- Signed-off-by: Uri Yagelnik <[email protected]> Signed-off-by: asafpamzn <[email protected]>
Signed-off-by: asafpamzn <[email protected]>
Signed-off-by: asafpamzn <[email protected]>
Co-authored-by: Rueian <[email protected]> Signed-off-by: asafpamzn <[email protected]>
Signed-off-by: asafpamzn <[email protected]>
Signed-off-by: asafpamzn <[email protected]>
Signed-off-by: asafpamzn <[email protected]>
I think this will become very difficult to maintain if we have it as hand-written markdown. I'm generally in favour of having it generated from JSON @zuiderkwast suggested. The question for me is does that get generated as part of docs or website. Related: should this be in the man pages? The information could be useful but if they're mostly links out to GitHub repos it feels like that's more typically something someone would browse from the web, not from a terminal. |
@stockholmux , why do you think that it will be hard to maintain? It is up on the clients maintainers to update it once new feature is added. It does not happen that frequently. It should be part of the website, I agree |
@asafpamzn If something is represented as data (i.e. JSON), it's far more maintainable than hand written markdown which is difficult/time consuming to review and audit. As an example, some of the hand written markdown in the content we inherited in this repo was literally a decade out-of-date. No one reported this for years. Data we can query and answer questions quickly. Additionally, markdown fixes the format in markdown tables which is not sortable or filterable. If it's data, that we have more options. Finally, If we have it stored as data we can do represent of the data in different ways and in different places not just fixed into a single markdown file. |
My intuition is that all the specific client information shouldn't be part of the man pages. I feel like that is getting too low level to be materially useful to most individuals, and the clients are also updated independently from the rest of the code.
I suppose to extend this, we already have |
Hi all! Joining @asafpamzn in trying to move this PR along. I only did a short dive so correct me if I'm wrong or missing something (which may very well be the case), but from what I got from your conversation so far, assuming we're not adding to man pages, seems like we need to -
Did I get it right? |