radius-project / radius

Radius is a cloud-native, portable application platform that makes app development easier for teams building cloud-native apps.
https://radapp.io
Apache License 2.0
1.46k stars 93 forks source link

Implementation of Dapr Building Block: Bindings #7960

Open SoTrx opened 1 week ago

SoTrx commented 1 week ago

Overview of feature request

The Dapr bindings building block allows interaction with external systems by reacting to external system events through input bindings (e.g., messages received from SaaS software events) or by triggering an external system's response with output bindings (e.g., SMTP, SMS, etc.). From a component standpoint, the only difference between input and output bindings is the direction metadata.

This enhancement will improve compatibility between Radius and Dapr. The building block is straightforward and won’t require any major changes to the daprrp aside from the new type.

As a stretch goal, it may also be an good time to introduce support for component scoping. This is important because input bindings send a POST request to the endpoint /[binding-name] for every application using the binding. Without scopes, the POST request would be sent to every app with a Dapr sidecar. This enhancement would also pave the way for potential support for declarative subscriptions.

Acceptance criteria

Additional context

https://docs.dapr.io/developing-applications/building-blocks/bindings/bindings-overview/

Would you like to support us?

AB#13234

radius-triage-bot[bot] commented 1 week ago

:wave: @SoTrx Thanks for filing this feature request.

A project maintainer will review this feature request and get back to you soon.

We also welcome community contributions! If you would like to pick this item up sooner and submit a pull request, please visit our contribution guidelines and assign this to yourself by commenting "/assign" on this issue.

For more information on our triage process please visit our triage overview

radius-triage-bot[bot] commented 1 week ago

:+1: We've reviewed this issue and have agreed to add it to our backlog. Please subscribe to this issue for notifications, we'll provide updates when we pick it up.

We also welcome community contributions! If you would like to pick this item up sooner and submit a pull request, please visit our contribution guidelines and assign this to yourself by commenting "/assign" on this issue.

For more information on our triage process please visit our triage overview

Reshrahim commented 1 week ago

@SoTrx - Just FYI, we have been working on expanding the built in Radius types with the User defined types solution. This will simplify a lot of writing Go code to make new resource type work in Radius. You can find more context about it in these docs

  1. PM feature spec - https://github.com/radius-project/design-notes/pull/58
  2. Technical design -https://github.com/radius-project/design-notes/blob/main/architecture/2024-07-user-defined-types.md

That said, UDT's feature is still in design and no ETA at the moment. If you have plans to contribute to this now, please go ahead with the current way of adding new types to Radius.