Open
Description
Overview of feature request
In this feature we will add support for the Dapr output binding to Drasi as a reaction. This will enable Drasi to output events to many more components and benefit from any additional output bindings added to Dapr. This feature builds on the #226 and brings similar benefits but expands the scope to providers that do not function as PubSub, HTTP for example.
Acceptance criteria
This extension has similar acceptance criteria to #226
- Configuration per Query:
- The reaction MUST allow configuration on a per-Drasi-query basis.
- Each query configuration MUST specify the target Dapr bindingName and the type of the binding - Event Publishing:
- The reaction MUST successfully publish Drasi ChangeEvent data (add, update, delete results from a CQ) to the configured Dapr output binding.
- The reaction MUST support an option to publish Drasi ControlEvent data to the Dapr output binding.
- The reaction MUST allow configuration to skipControlSignals if only data changes are desired. - Event Formatting:
- The reaction MUST support publishing events in an "unpacked" format, where individual changes (adds, updates, deletes) or control signals are sent as separate Dapr messages (using Drasi native format).
- The reaction MUST support an option for a "packed" format, where the entire Drasi ChangeEvent or ControlEvent object is sent as a single Dapr message.
- The default format SHOULD be "unpacked". - Error Handling & Resilience:
- Configuration errors (e.g., missing required fields) MUST be detected at startup, and the reaction should fail to start or clearly log the invalid configurations. - Documentation:
- A README.md file MUST be included, detailing
- The purpose of the reaction.
- All configuration parameters (e.g., bindingName, bindingType, packed, skipControlSignals) with descriptions, defaults, and whether they are required.
- Example reaction.yaml configuration.
- Basic instructions on how a Dapr microservice can subscribe to and consume events published by this reaction.
- The structure of the published messages for both packed and unpacked formats.
- A README.md file MUST be included, detailing
Additional context
Key Scenarios
- Enables connection to Notification Systems including SMTP, SMS and Webhooks.
- Enables alternative methods for running workflows based on Drasi queries.
Dapr Documentation: Output Bindings
Would you like to support us?
- Yes, I would like to support you
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity