dapr/cpp-sdk

doc: add diagram for how CPP SDK interacts with Dapr runtime

Opened this issue · 0 comments

Describe the proposal

Is your feature request related to a problem? Please describe.
There is no visual representation for how the SDK interacts with the Dapr runtime.

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 CPP SDK, and the Dapr sidecar close to the codebase, within the README.md file.

The diagram should include:

  • 3 main components: end user application, Dapr CPP SDK, Dapr sidecar:
  • Initialization: which protocol is the application Dapr client using to establish connection with the Dapr sidecar, HTTP or gRPC? 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. We should represent which APIs the SDK supports.
  • 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 that can be included in diagram:

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

Describe alternatives you've considered
We could technically keep the README.md file as is, but it would be nice to have visuals here for community members understanding of these interactions.

Additional context
https://docs.dapr.io/developing-applications/sdks/