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

add general diagram for how SDKs interacts with Dapr runtime #3736

Open
sicoyle opened this issue Sep 14, 2023 · 5 comments
Open

add general diagram for how SDKs interacts with Dapr runtime #3736

sicoyle opened this issue Sep 14, 2023 · 5 comments
Labels
content/missing-information More information requested or needed good first issue Good for newcomers

Comments

@sicoyle
Copy link
Contributor

sicoyle commented Sep 14, 2023

What content needs to be created or modified?
There is no visual representation for how the SDKs in general interacts with the Dapr runtime. We should add a visual for this for easy understanding at a glance by community members.

Describe the solution you'd like
It would be nice for community members to have a diagram depicting the interactions with end user applications, the Dapr SDKs, and the Dapr sidecar at a high level.

The diagram should include:

3 main components: end user application, Dapr SDKs, Dapr sidecar

  • Initialization: Depict the application Dapr client establishing connection with the Dapr sidecar, via HTTP or gRPC. Note: that depends on the SDK and should be depicted visually.
  • API calls that one can use the Dapr client for. For example you can save & retrieve state from state stores, publish and subscribe to events using pub/sub, invoke other services using service invocation, etc.
  • Overall request routing (when app makes API call through Dapr client, then the request is sent to the Dapr sidecar running along the app)

Other ideas (but not limited to below list) that can be included in diagram:

  • Sidecar processing
  • Response handling
  • Middleware and observability
  • Error handling
  • Security

Where should the new material be placed?
On this page: https://docs.dapr.io/developing-applications/sdks/

The associated pull request from dapr/dapr, dapr/components-contrib, or other Dapr code repos
No pull requests yet as I'm targetting this as a good idea for adding on the Grace Hopper Conference board for Dapr. I'll link the SDK specific issues here, as I believe we can have a generic visual representation here, and then a more specific diagram per SDK in their associated README.md files.

SDK Issues:
dapr/go-sdk#451
dapr/java-sdk#915
dapr/dotnet-sdk#1146
dapr/js-sdk#521
dapr/python-sdk#599
dapr/rust-sdk#105
dapr/cpp-sdk#56
dapr/php-sdk#139

@sicoyle sicoyle added the content/missing-information More information requested or needed label Sep 14, 2023
@sicoyle
Copy link
Contributor Author

sicoyle commented Sep 14, 2023

Thoughts @hhunter-ms ?

@msfussell
Copy link
Member

@sicoyle - Can you add a sketch for the words above on your expectation here. If this is a simplified picture I would add it here https://docs.dapr.io/concepts/overview/#developer-language-sdks-and-frameworks, since this is usually simply the importing and using of an SDK
Are you trying to also show implementation of the SDKs?

@hhunter-ms hhunter-ms added the good first issue Good for newcomers label Sep 18, 2023
@sicoyle
Copy link
Contributor Author

sicoyle commented Sep 21, 2023

Maybe something along these lines in the dapr docs (but whoever picks up this issue can use PowerPoint or a nice visualizer to formalize it), and then we could have more details that are SDK specific for the corresponding SDKs? Thoughts @msfussell ?

   +----------------+           +----------------+           +-----------------+
   |   Your         |           |  Dapr SDK     |           |   Dapr Sidecar  |
   | Application    |           |  (e.g., Go,   |           |                 |
   |                |           |   Python,     |           |                 |
   |                |           |   .NET, etc.) |           |                 |
   +----------------+           +----------------+           +-----------------+
           |                            |                            |
           |                            |                            |
           |     API Calls              |                            |
           |---------------------------->                            |
           |                            |                            |
           |                            |                            |
           |                            |                            |
           |                            |     Request Routing         |
           |                            |---------------------------->
           |                            |                            |
           |                            |                            |
           |                            |                            |
           |                            |                            |
           |                            |                            |
           |                            |                            |
           |                            |   Sidecar Processing       |
           |                            |---------------------------->
           |                            |                            |
           |                            |                            |
           |                            |                            |
           |                            |                            |
           |                            |                            |
           |                            |                            |
           |                            |                            |
           |                            |                            |
           |                            |                            |
           |                            |                            |
           |                            |     Response Handling       |
           |                            |<----------------------------|
           |                            |                            |
           |                            |                            |

@sicoyle
Copy link
Contributor Author

sicoyle commented Sep 21, 2023

ORRRR even better is this visual here for the JS SDK:
https://docs.dapr.io/developing-applications/sdks/js/#structure

Maybe use this as a starting point and spruce it up for where you recommended adding in the dapr docs? Also, again with making SDK specific in the READMEs.

@hhunter-ms
Copy link
Collaborator

@sicoyle is this kind of what you're looking for in regards to a general concept diagram?

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
content/missing-information More information requested or needed good first issue Good for newcomers
Projects
No open projects
Development

No branches or pull requests

3 participants