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

Update Documentation for Protocol Support in DiceDB #559

Closed
pratikpandey21 opened this issue Sep 12, 2024 · 9 comments · Fixed by #847
Closed

Update Documentation for Protocol Support in DiceDB #559

pratikpandey21 opened this issue Sep 12, 2024 · 9 comments · Fixed by #847
Assignees
Labels

Comments

@pratikpandey21
Copy link
Contributor

Description

Update the DiceDB documentation to comprehensively cover the different protocols that DiceDB supports, including RESP, HTTP, and WebSocket (WS). The documentation should provide clear guidelines on how customers can leverage each protocol for various use cases, highlighting their features, advantages, and potential applications.

Requirements:

Comprehensive Protocol Documentation:

  • Provide an overview of all protocols DiceDB supports: RESP, HTTP, and WebSocket (WS).
  • Include a detailed explanation of the capability available with each protocol(eg, if all commands are supported)
  • Highlight each protocol's benefits and unique features and when it is most appropriate to use one over the others.

E.g.:
RESP: Low-latency, high-performance use cases where clients communicate directly with DiceDB.
HTTP: Webhook integrations, SSE-based real-time updates, and RESTful interactions.
WebSocket (WS): Applications requiring low-latency, bidirectional communication, such as live updates or collaborative environments.

@pratikpandey21
Copy link
Contributor Author

Depends on #553 and #555

@KaviiSuri
Copy link
Contributor

@pratikpandey21 i'd love to help out on this once the dependencies are done

@pratikpandey21
Copy link
Contributor Author

Thanks Kavi!

@lucifercr07
Copy link
Contributor

@KaviiSuri would you like to take this up? We're done with implementation of HTTP we can start on that.

@KaviiSuri
Copy link
Contributor

@lucifercr07 yes, I’ll go ahead with it now. Thanks for pinging me

@KaviiSuri
Copy link
Contributor

Will try to get a draft ready by eod tomorrow

@KaviiSuri
Copy link
Contributor

went through the implementation, will publish PR this weekend

@KaviiSuri
Copy link
Contributor

@lucifercr07 @pratikpandey21 here is a PR for the docs: DiceDB/docs#114 , would love to hear your feedback on this.

@KaviiSuri
Copy link
Contributor

My Current Concerns about the implementation (added here for sake of trackability)

  1. We use SSE with body, while the Web Standard for SSE (EventSource) doesn't really support it. It would be better for developer experience if we just used query params for QWATCH (and other SSE backed commands)
  2. it seems like enabling HTTP 2.0 dice would allow it to server more SSE without browser limitations on number of connections. Enabling HTTP 2.0 is automatic in go post 1.6, we just need to use TLS since 2.0 requries TLS. go net/http will deal with version negotiation itself
  3. We do not allow for CORS configuration right now, but we need to have it configurable through our config file for any real world use-case involving browsers querying the db.

JyotinderSingh added a commit that referenced this issue Sep 29, 2024
Co-authored-by: Jyotinder Singh <jyotindrsingh@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
3 participants