components-contrib/bindings
Christian Kaps 3689020fb5
Update Zeebe to version 1.0 (#876)
* Update Zeebe to version 1.0

* Fix lint error regarding import

* Don't panic on error

* Log error as string

* Pass reason msg to process engine on fail job command

* Pass job specific variables as headers to a worker

* Fix formatting issue

Co-authored-by: Phil Kedy <phil.kedy@gmail.com>
Co-authored-by: Artur Souza <artursouza.ms@outlook.com>
2021-06-11 16:34:01 -07:00
..
alicloud Resolving gofumpt issues (#932) 2021-06-09 15:18:50 -07:00
apns Removed dependency on dapr/dapr in favor of dapr/kit. Fixed go mod dependencies afterwards. Go 1.16 in go.mod. Removed accidental log dependency. (#807) 2021-04-19 12:06:10 -07:00
aws Removed dependency on dapr/dapr in favor of dapr/kit. Fixed go mod dependencies afterwards. Go 1.16 in go.mod. Removed accidental log dependency. (#807) 2021-04-19 12:06:10 -07:00
azure Removed dependency on dapr/dapr in favor of dapr/kit. Fixed go mod dependencies afterwards. Go 1.16 in go.mod. Removed accidental log dependency. (#807) 2021-04-19 12:06:10 -07:00
cron Removed dependency on dapr/dapr in favor of dapr/kit. Fixed go mod dependencies afterwards. Go 1.16 in go.mod. Removed accidental log dependency. (#807) 2021-04-19 12:06:10 -07:00
gcp Removed dependency on dapr/dapr in favor of dapr/kit. Fixed go mod dependencies afterwards. Go 1.16 in go.mod. Removed accidental log dependency. (#807) 2021-04-19 12:06:10 -07:00
http ci: enable gofumt linter (#887) 2021-05-27 22:21:24 -07:00
influx Removed dependency on dapr/dapr in favor of dapr/kit. Fixed go mod dependencies afterwards. Go 1.16 in go.mod. Removed accidental log dependency. (#807) 2021-04-19 12:06:10 -07:00
kafka Fix Kafka binding implements Close() for cleanup (#906) 2021-06-04 15:47:18 -07:00
kubernetes Removed dependency on dapr/dapr in favor of dapr/kit. Fixed go mod dependencies afterwards. Go 1.16 in go.mod. Removed accidental log dependency. (#807) 2021-04-19 12:06:10 -07:00
localstorage Resolving gofumpt issues (#932) 2021-06-09 15:18:50 -07:00
mqtt mqtt: implement Close (#905) 2021-06-04 15:38:04 -07:00
mysql ci: enable gofumt linter (#887) 2021-05-27 22:21:24 -07:00
postgres Removed dependency on dapr/dapr in favor of dapr/kit. Fixed go mod dependencies afterwards. Go 1.16 in go.mod. Removed accidental log dependency. (#807) 2021-04-19 12:06:10 -07:00
postmark Removed dependency on dapr/dapr in favor of dapr/kit. Fixed go mod dependencies afterwards. Go 1.16 in go.mod. Removed accidental log dependency. (#807) 2021-04-19 12:06:10 -07:00
rabbitmq Removed dependency on dapr/dapr in favor of dapr/kit. Fixed go mod dependencies afterwards. Go 1.16 in go.mod. Removed accidental log dependency. (#807) 2021-04-19 12:06:10 -07:00
redis Move the common Redis code to internal (#859) 2021-06-06 23:24:36 -07:00
rethinkdb/statechange Removed dependency on dapr/dapr in favor of dapr/kit. Fixed go mod dependencies afterwards. Go 1.16 in go.mod. Removed accidental log dependency. (#807) 2021-04-19 12:06:10 -07:00
smtp ci: enable gofumt linter (#887) 2021-05-27 22:21:24 -07:00
twilio Removed dependency on dapr/dapr in favor of dapr/kit. Fixed go mod dependencies afterwards. Go 1.16 in go.mod. Removed accidental log dependency. (#807) 2021-04-19 12:06:10 -07:00
twitter Removed dependency on dapr/dapr in favor of dapr/kit. Fixed go mod dependencies afterwards. Go 1.16 in go.mod. Removed accidental log dependency. (#807) 2021-04-19 12:06:10 -07:00
zeebe Update Zeebe to version 1.0 (#876) 2021-06-11 16:34:01 -07:00
Readme.md Update Readme.md 2021-03-30 18:03:19 +08:00
input_binding.go Add app response to input binding event (#764) 2021-03-18 14:22:14 -07:00
metadata.go change headers (#679) 2021-02-09 18:57:55 -08:00
output_binding.go change headers (#679) 2021-02-09 18:57:55 -08:00
requests.go change headers (#679) 2021-02-09 18:57:55 -08:00
responses.go Add app response to input binding event (#764) 2021-03-18 14:22:14 -07: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 one or more interfaces, depending on the type of binding (Input or Output):

Input binding:

type InputBinding interface {
	Init(metadata Metadata) error
	Read(handler func(*ReadResponse) ([]byte, error)) error
}

Output binding:

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.

type OutputBinding interface {
	Init(metadata Metadata) error
	Invoke(req *InvokeRequest) (*InvokeResponse, error)
	Operations() []OperationKind
}

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 here.

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