Bindings API
Using the Catalyst Bindings API, you can trigger your app with events coming in from external systems and interface with external systems. See Bindings API Reference.
With the Bindings API, you can:
- Avoid the complexities of connecting to and polling from messaging systems, such as queues and message buses.
- Focus on business logic, instead of the implementation details of interacting with a system.
- Decrease your dependence on third-party SDKs and libraries.
- Handle retries and failure recovery.
- Build portable applications with environment-specific bindings and no required code changes.
There are two primary binding types: Input
and Output
.
Input bindings
With input bindings, you can trigger your application when an event from an external resource occurs. An optional payload and metadata may be sent with the request.
To receive events from an input binding:
- Onboard a Catalyst Component for the input binding source
- Listen for the incoming event using:
- An HTTP endpoint
- The gRPC proto library to receive events
On startup, Catalyst will send an OPTIONS request for all defined input bindings to the application. If the application wants to subscribe to the binding, Catalyst expects a status code of 2xx or 405.
Output bindings
With output bindings, you can invoke external resources. An optional payload and metadata can be sent with the invocation request.
To invoke an input binding:
- Onboard a Catalyst Component for the output binding target service
- Use the HTTP endpoint or gRPC method to invoke the binding with an optional payload
- Specify an output operation. Output operations depend on the binding component you use, and can include:
"create"
"update"
"delete"
"exec"
Binding components may vary in the capabilities they support, you can use the Catalyst console to filter by operation when determining if a binding provides the functionality you need.
Supported Binding Components
Name | Input | Output |
---|---|---|
AWS S3: aws.s3 | ❌ | ✅ |
AWS SNS: aws.sns | ✅ | ✅ |
Azure Blob Storage: azure.blobstorage | ❌ | ✅ |
Azure Cosmos DB (SQL API): azure.cosmosdb | ❌ | ✅ |
Azure Event Hubs: azure.eventhubs | ✅ | ✅ |
Azure Service Bus Queues: azure.servicebus.queues | ✅ | ✅ |
Azure Storage Queues: azure.storagequeues | ✅ | ✅ |
HTTP: http | ❌ | ✅ |
Apache Kafka: kafka | ✅ | ✅ |
PostgreSQL: postgres | ❌ | ✅ |
RabbitMQ: rabbitmq | ✅ | ✅ |
Redis: redis | ❌ | ✅ |