components-contrib/bindings
halst 42583085ce
Add kitex output binding (#2563)
Signed-off-by: liusong <liusongstep@gmail.com>
Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>
Co-authored-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>
2023-03-16 16:59:03 +00:00
..
alicloud Merge branch 'master' of https://github.com/dapr/components-contrib into newdeps 2023-02-16 23:35:28 +00:00
apns Merge branch 'master' of https://github.com/dapr/components-contrib into newdeps 2023-02-16 23:35:28 +00:00
aws Propagate context from caller to appropriate places in the code (#2474) 2023-02-16 14:18:35 -08:00
azure Remove `context.TODO()`s with passed context. (#2650) 2023-03-08 17:53:02 +00:00
cloudflare/queues 💄 2023-02-17 00:59:25 +00:00
commercetools Propagate context from caller to appropriate places in the code (#2474) 2023-02-16 14:18:35 -08:00
cron 💄 2023-02-17 00:02:23 +00:00
dubbo Merge branch 'master' of https://github.com/dapr/components-contrib into newdeps 2023-02-16 23:35:28 +00:00
gcp Propagate context from caller to appropriate places in the code (#2474) 2023-02-16 14:18:35 -08:00
graphql Propagate context from caller to appropriate places in the code (#2474) 2023-02-16 14:18:35 -08:00
http Merge branch 'master' into metadata 2023-02-22 16:46:43 -08:00
huawei/obs Propagate context from caller to appropriate places in the code (#2474) 2023-02-16 14:18:35 -08:00
influx Merge branch 'master' of https://github.com/dapr/components-contrib into newdeps 2023-02-16 23:35:28 +00:00
kafka Propagate context from caller to appropriate places in the code (#2474) 2023-02-16 14:18:35 -08:00
kitex Add kitex output binding (#2563) 2023-03-16 16:59:03 +00:00
kubemq Propagate context from caller to appropriate places in the code (#2474) 2023-02-16 14:18:35 -08:00
kubernetes Propagate context from caller to appropriate places in the code (#2474) 2023-02-16 14:18:35 -08:00
localstorage Merge branch 'master' of https://github.com/dapr/components-contrib into release-1.10 2023-02-16 23:23:23 +00:00
mqtt3 Propagate context from caller to appropriate places in the code (#2474) 2023-02-16 14:18:35 -08:00
mysql Propagate context from caller to appropriate places in the code (#2474) 2023-02-16 14:18:35 -08:00
nacos Propagate context from caller to appropriate places in the code (#2474) 2023-02-16 14:18:35 -08:00
postgres Merge branch 'master' of https://github.com/dapr/components-contrib into newdeps 2023-02-16 23:35:28 +00:00
postmark Propagate context from caller to appropriate places in the code (#2474) 2023-02-16 14:18:35 -08:00
rabbitmq Propagate context from caller to appropriate places in the code (#2474) 2023-02-16 14:18:35 -08:00
redis Adding GetDel support for Redis Bindings (#2662) 2023-03-14 17:57:16 +00:00
rethinkdb/statechange 💄 2023-02-17 00:02:23 +00:00
rocketmq Propagate context from caller to appropriate places in the code (#2474) 2023-02-16 14:18:35 -08:00
smtp Propagate context from caller to appropriate places in the code (#2474) 2023-02-16 14:18:35 -08:00
twilio Propagate context from caller to appropriate places in the code (#2474) 2023-02-16 14:18:35 -08:00
zeebe Changed linter version for now 2023-02-17 18:02:55 +00:00
README.md middleware: changes wasm basic to use waPC (#1833) 2022-09-13 17:12:59 -07:00
bindings.go Components' init functions should return interfaces (#1997) 2022-08-25 18:27:45 -07:00
input_binding.go Propagate context from caller to appropriate places in the code (#2474) 2023-02-16 14:18:35 -08:00
metadata.go Define common metadata across components (#1994) 2022-08-25 10:10:53 -07:00
output_binding.go Propagate context from caller to appropriate places in the code (#2474) 2023-02-16 14:18:35 -08:00
requests.go update license to Apache v2.0 (#1406) 2022-01-04 19:53:31 -08:00
responses.go Added ContentType to pubsub/binding/state request-response (#1376) 2022-01-28 10:17:04 -08:00

README.md

Bindings

Bindings provide a common way to trigger an application with events from external systems, or invoke an external system with optional data payloads. Bindings are great for event-driven, on-demand compute and help reduce boilerplate code.

To get started with bindings visit the How To Guide.

To view all the currently supported bindings visit: Dapr bindings.

For detailed binding specs visit Dapr binding specs.

Implementing a new binding

A compliant binding needs to implement at least one interface, depending on the type of binding (Input, Output, or both):

Input binding implement the InputBinding interface defined in input_binding.go

Output binding implement the OutputBinding interface defined in output_binding.go

An output binding can be used to invoke an external system and also to return data from it. Each output binding can decide which operations it supports. This information is communicated to the caller via the Operations() method.

When creating an Output Binding, a list of OperationKind items needs to be returned. For example, if running a component that takes in a SQL query and returns a result set, the OperationKind can be query.

While components are not restricted to a list of supported operations, it's best to use common ones if the operation kind falls under that operation definition. The list of common operations can be found in requests.go.

After implementing a binding, the specification docs need to be updated via a Pull Request: Dapr docs.