-
Notifications
You must be signed in to change notification settings - Fork 50
Add Post-Dapr-PubSub Reaction #226
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
91a0b62
to
dbd385b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces a new PostDaprPubSub Reaction that forwards Drasi query outputs—both change and control events—to specified Dapr Pub/Sub topics. Key changes include the implementation of core services (ChangeHandler, ControlSignalHandler, QueryConfig, QueryFailureTracker), comprehensive unit tests for these components, and accompanying Docker configurations and workflow updates.
Reviewed Changes
Copilot reviewed 48 out of 48 changed files in this pull request and generated no comments.
Show a summary per file
File | Description |
---|---|
Services/ChangeHandler.cs | Implements processing of change events with support for both packed and unpacked formats. |
Services/ChangeFormatterFactory.cs | Provides a factory method to retrieve the DrasiChangeFormatter instance. |
QueryFailureTracker.cs | Offers thread-safe tracking and management of query failures. |
QueryConfig.cs | Defines the JSON configuration model with validations for the reaction. |
Program.cs | Sets up application dependency injection, startup sequence, and Dapr sidecar waiting logic. |
ErrorStateHandler.cs | Provides a mechanism to terminate the reaction in critical error scenarios. |
csproj file | Targets .NET 9.0 and includes necessary package references. |
Tests/ | Contains extensive unit tests validating service behavior, configuration validation, and Docker build scripts. |
Dockerfile & Dockerfile.debug | Define multi-stage container builds for production and debugging environments. |
.github/workflows/draft-release.yml | Updates the release workflow to include the new reaction. |
reactions/dapr/post-pubsub/Drasi.Reactions.PostDaprPubSub/Services/ChangeHandler.cs
Outdated
Show resolved
Hide resolved
reactions/dapr/post-pubsub/Drasi.Reactions.PostDaprPubSub/Services/ChangeHandler.cs
Show resolved
Hide resolved
reactions/dapr/post-pubsub/Drasi.Reactions.PostDaprPubSub/Program.cs
Outdated
Show resolved
Hide resolved
reactions/dapr/post-pubsub/Drasi.Reactions.PostDaprPubSub/QueryConfig.cs
Outdated
Show resolved
Hide resolved
69af717
to
529ee16
Compare
e2e-tests/06-post-dapr-pubsub-scenario/post-pubsub-redis.test.js
Dismissed
Show dismissed
Hide dismissed
d6ec332
to
e83b650
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Adds a new Post-Dapr-PubSub reaction that publishes Drasi change and control events to Dapr pub/sub topics, with full unit and end-to-end tests, Dockerfiles, and CI updates.
- Implements handlers, configuration model, validation, failure tracking, and initialization for the PostDaprPubSub reaction.
- Adds a comprehensive xUnit test suite for config validation, change/control handlers, Dapr sidecar initialization, and formatting logic.
- Introduces Dockerfiles for production/debug builds, e2e tests for Redis-backed pub/sub, and CI workflow entries.
Reviewed Changes
Copilot reviewed 54 out of 54 changed files in this pull request and generated 1 comment.
File | Description |
---|---|
reactions/dapr/post-pubsub/Drasi.Reactions.PostDaprPubSub.Tests/QueryConfigValidationServiceTests.cs | Tests for startup config validation service |
reactions/dapr/post-pubsub/Dockerfile | Production Dockerfile for PostDaprPubSub reaction |
reactions/dapr/post-pubsub/Drasi.Reactions.PostDaprPubSub.Tests/ErrorStateHandlerTests.cs | Placeholder test for error state handler |
reactions/dapr/post-pubsub/Drasi.Reactions.PostDaprPubSub.Tests/DaprInitializationServiceTests.cs | Tests for Dapr sidecar initialization |
Comments suppressed due to low confidence (4)
reactions/dapr/post-pubsub/Drasi.Reactions.PostDaprPubSub.Tests/QueryConfigValidationServiceTests.cs:1
- Add
using System.Threading;
(or qualifyCancellationToken
) so calls toCancellationToken.None
compile correctly.
// Copyright 2024 The Drasi Authors.
reactions/dapr/post-pubsub/Drasi.Reactions.PostDaprPubSub.Tests/DaprInitializationServiceTests.cs:1
- Add
using System.Threading;
to enableCancellationToken
references in tests.
// Copyright 2024 The Drasi Authors.
reactions/dapr/post-pubsub/Drasi.Reactions.PostDaprPubSub.Tests/ErrorStateHandlerTests.cs:24
- [nitpick] This placeholder test doesn't verify any behavior of
ErrorStateHandler
. Implement a real assertion or remove it to improve coverage and maintainability.
public void Terminate_CallsTerminateWithError()
reactions/dapr/post-pubsub/Drasi.Reactions.PostDaprPubSub.Tests/DaprInitializationServiceTests.cs:43
- [nitpick] Test name
WaitForDaprSidecarAsync_Success_LogsInfoMessage
implies log verification, but no assertion is made against the logger. Either assertILogger.LogInformation
was called or rename the test to reflect behavior.
[Fact]
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, we just need to add the config schema in the reaction provider definition.
Signed-off-by: Aman Singh <[email protected]>
Signed-off-by: Aman Singh <[email protected]>
Signed-off-by: Aman Singh <[email protected]>
Signed-off-by: Aman Singh <[email protected]>
Co-authored-by: Copilot <[email protected]> Signed-off-by: Aman Singh <[email protected]>
Signed-off-by: Aman Singh <[email protected]> Signed-off-by: ruokun-niu <[email protected]>
…testing Source SDKs (#180) * test fix Signed-off-by: ruokun-niu <[email protected]> * typespec Signed-off-by: ruokun-niu <[email protected]> * updated makefile to run test before publish Signed-off-by: ruokun-niu <[email protected]> * added test run for source sdk Signed-off-by: ruokun-niu <[email protected]> * java jdk setup Signed-off-by: ruokun-niu <[email protected]> * protobuf Signed-off-by: ruokun-niu <[email protected]> * updated makefile and sln file for dotnet, updated typespec Signed-off-by: ruokun-niu <[email protected]> * restore SourceChange type Signed-off-by: ruokun-niu <[email protected]> * Query Bootstrap Tracing (#179) * modified span * working * clean up * nit * deleted unused imports * cargo fmt Signed-off-by: ruokun-niu <[email protected]> * Fixed spelling of 'Installing'. (#195) Signed-off-by: ruokun-niu <[email protected]> * Add k3d-load target to all Makefiles (#203) Signed-off-by: ruokun-niu <[email protected]> * updated storage queue name in the GH workflows (#188) Signed-off-by: ruokun-niu <[email protected]> * readme (#183) Signed-off-by: ruokun-niu <[email protected]> * keep debug view sorted on changes (#184) Signed-off-by: ruokun-niu <[email protected]> * Environment Management & k3s encapsulated Drasi (#200) * wip * wip * wip * wip * wip * cli wip * wip * wip * wip * wip * fix tests * wip * load local images * engines * Update deploy-resources.js * Update k8s.test.js Signed-off-by: ruokun-niu <[email protected]> * [Snyk] Fix for 8 vulnerabilities (#204) * fix: sources/sdk/java/pom.xml to reduce vulnerabilities The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JAVA-ORGYAML-3152153 - https://snyk.io/vuln/SNYK-JAVA-COMGOOGLEPROTOBUF-8055227 - https://snyk.io/vuln/SNYK-JAVA-COMGOOGLEPROTOBUF-2331703 - https://snyk.io/vuln/SNYK-JAVA-COMGOOGLEPROTOBUF-3167772 - https://snyk.io/vuln/SNYK-JAVA-COMSQUAREUPOKHTTP3-2958044 - https://snyk.io/vuln/SNYK-JAVA-COMMONSIO-8161190 - https://snyk.io/vuln/SNYK-JAVA-COMGOOGLEPROTOBUF-3040284 - https://snyk.io/vuln/SNYK-JAVA-ORGJETBRAINSKOTLIN-2628385 * update samples * fix for breaking dapr sdk change * update sdk version --------- Co-authored-by: snyk-bot <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Bump vite from 5.4.14 to 5.4.19 in /reactions/signalr/signalr-reaction/clients/vue (#216) * Bump vite in /reactions/signalr/signalr-reaction/clients/vue Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.14 to 5.4.19. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v5.4.19/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v5.4.19/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 5.4.19 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <[email protected]> * Update deploy-resources.js * Revert "Update deploy-resources.js" This reverts commit 1d1d75a. * wip * wip * wip * wip * wip --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Update readme.md to add CNCF Sandbox link (#199) Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Bump tokio from 1.40.0 to 1.43.1 in /control-planes/kubernetes_provider (#187) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.40.0 to 1.43.1. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](tokio-rs/tokio@tokio-1.40.0...tokio-1.43.1) --- updated-dependencies: - dependency-name: tokio dependency-version: 1.43.1 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Bump openssl from 0.10.66 to 0.10.72 in /sources/shared/query-api (#182) Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.66 to 0.10.72. - [Release notes](https://github.com/sfackler/rust-openssl/releases) - [Commits](sfackler/rust-openssl@openssl-v0.10.66...openssl-v0.10.72) --- updated-dependencies: - dependency-name: openssl dependency-version: 0.10.72 dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Bump ring from 0.17.8 to 0.17.13 in /control-planes/kubernetes_provider (#163) Bumps [ring](https://github.com/briansmith/ring) from 0.17.8 to 0.17.13. - [Changelog](https://github.com/briansmith/ring/blob/main/RELEASES.md) - [Commits](https://github.com/briansmith/ring/commits) --- updated-dependencies: - dependency-name: ring dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Bump crossbeam-channel from 0.5.13 to 0.5.15 in /query-container (#191) Bumps [crossbeam-channel](https://github.com/crossbeam-rs/crossbeam) from 0.5.13 to 0.5.15. - [Release notes](https://github.com/crossbeam-rs/crossbeam/releases) - [Changelog](https://github.com/crossbeam-rs/crossbeam/blob/master/CHANGELOG.md) - [Commits](crossbeam-rs/crossbeam@crossbeam-channel-0.5.13...crossbeam-channel-0.5.15) --- updated-dependencies: - dependency-name: crossbeam-channel dependency-version: 0.5.15 dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Bump tokio from 1.39.2 to 1.43.1 in /control-planes/mgmt_api (#185) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.39.2 to 1.43.1. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](tokio-rs/tokio@tokio-1.39.2...tokio-1.43.1) --- updated-dependencies: - dependency-name: tokio dependency-version: 1.43.1 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Eventgrid Reaction bug fix (#198) * cloudevent done * tested eventgrid * updated sdk Signed-off-by: ruokun-niu <[email protected]> * queue item encoding (#224) Signed-off-by: ruokun-niu <[email protected]> * Update index.html (#227) Makes the tab title in browser identifiable Signed-off-by: ruokun-niu <[email protected]> * Update readme.md to add OpenSSF badge (#230) Signed-off-by: ruokun-niu <[email protected]> * Add Sync-Dapr-StateStore Reaction (#218) Signed-off-by: ruokun-niu <[email protected]> * update libraries (#233) Signed-off-by: ruokun-niu <[email protected]> * Updated the DevSkim workflow to use ubuntu-latest (#228) Signed-off-by: ruokun-niu <[email protected]> * Reduce number of pull requests from dependabot (#232) Signed-off-by: ruokun-niu <[email protected]> * Observability stack for drasi-platform (#189) * metrics observability * metrics and tracing * removed zipkin; updated tracing and metrics * update otel setting; tracing working * validate flag * test trace working * updated pvc for the observability tools * storage configuration Signed-off-by: ruokun-niu <[email protected]> * Use Renovate Github App instead of Dependabot (#240) * Use Renovate Github App instead of Dependabot Signed-off-by: ruokun-niu <[email protected]> * Bump tokio from 1.42.0 to 1.43.1 in /sources/sdk/rust/example/proxy (#186) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.42.0 to 1.43.1. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](tokio-rs/tokio@tokio-1.42.0...tokio-1.43.1) --- updated-dependencies: - dependency-name: tokio dependency-version: 1.43.1 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Update drasi core (#243) Signed-off-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Add end to end tests for SyncDaprStateStore reaction (#241) Note: Snyk parsing failed for package-lock.json file. Signed-off-by: ruokun-niu <[email protected]> * Add Post-Dapr-PubSub Reaction (#226) Signed-off-by: Aman Singh <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Register the middlewares with query host (#250) Signed-off-by: Aman Singh <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Fix enum conversion bug in Post-PubSub-Reaction (#252) Signed-off-by: Aman Singh <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * check exists (#255) Signed-off-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * check for 0.0.0.0 ip from k3d bug (#257) Signed-off-by: ruokun-niu <[email protected]> * Bump @babel/runtime from 7.26.0 to 7.26.10 in /typespec (#170) Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.26.0 to 7.26.10. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.26.10/packages/babel-runtime) --- updated-dependencies: - dependency-name: "@babel/runtime" dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Update renovate config (#261) * Update renovate config Signed-off-by: Aman Singh <[email protected]> * increase wait time before auto merge Signed-off-by: Aman Singh <[email protected]> --------- Signed-off-by: Aman Singh <[email protected]> Signed-off-by: ruokun-niu <[email protected]> --------- Signed-off-by: ruokun-niu <[email protected]> Signed-off-by: dependabot[bot] <[email protected]> Signed-off-by: Daniel Gerlag <[email protected]> Signed-off-by: Aman Singh <[email protected]> Co-authored-by: Luke Murray <[email protected]> Co-authored-by: Aman Singh <[email protected]> Co-authored-by: Daniel Gerlag <[email protected]> Co-authored-by: snyk-bot <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Nandita Valsan <[email protected]> Co-authored-by: ms-nateb <[email protected]>
Signed-off-by: Aman Singh <[email protected]> Signed-off-by: ruokun-niu <[email protected]>
…testing Source SDKs (drasi-project#180) * test fix Signed-off-by: ruokun-niu <[email protected]> * typespec Signed-off-by: ruokun-niu <[email protected]> * updated makefile to run test before publish Signed-off-by: ruokun-niu <[email protected]> * added test run for source sdk Signed-off-by: ruokun-niu <[email protected]> * java jdk setup Signed-off-by: ruokun-niu <[email protected]> * protobuf Signed-off-by: ruokun-niu <[email protected]> * updated makefile and sln file for dotnet, updated typespec Signed-off-by: ruokun-niu <[email protected]> * restore SourceChange type Signed-off-by: ruokun-niu <[email protected]> * Query Bootstrap Tracing (drasi-project#179) * modified span * working * clean up * nit * deleted unused imports * cargo fmt Signed-off-by: ruokun-niu <[email protected]> * Fixed spelling of 'Installing'. (drasi-project#195) Signed-off-by: ruokun-niu <[email protected]> * Add k3d-load target to all Makefiles (drasi-project#203) Signed-off-by: ruokun-niu <[email protected]> * updated storage queue name in the GH workflows (drasi-project#188) Signed-off-by: ruokun-niu <[email protected]> * readme (drasi-project#183) Signed-off-by: ruokun-niu <[email protected]> * keep debug view sorted on changes (drasi-project#184) Signed-off-by: ruokun-niu <[email protected]> * Environment Management & k3s encapsulated Drasi (drasi-project#200) * wip * wip * wip * wip * wip * cli wip * wip * wip * wip * wip * fix tests * wip * load local images * engines * Update deploy-resources.js * Update k8s.test.js Signed-off-by: ruokun-niu <[email protected]> * [Snyk] Fix for 8 vulnerabilities (drasi-project#204) * fix: sources/sdk/java/pom.xml to reduce vulnerabilities The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JAVA-ORGYAML-3152153 - https://snyk.io/vuln/SNYK-JAVA-COMGOOGLEPROTOBUF-8055227 - https://snyk.io/vuln/SNYK-JAVA-COMGOOGLEPROTOBUF-2331703 - https://snyk.io/vuln/SNYK-JAVA-COMGOOGLEPROTOBUF-3167772 - https://snyk.io/vuln/SNYK-JAVA-COMSQUAREUPOKHTTP3-2958044 - https://snyk.io/vuln/SNYK-JAVA-COMMONSIO-8161190 - https://snyk.io/vuln/SNYK-JAVA-COMGOOGLEPROTOBUF-3040284 - https://snyk.io/vuln/SNYK-JAVA-ORGJETBRAINSKOTLIN-2628385 * update samples * fix for breaking dapr sdk change * update sdk version --------- Co-authored-by: snyk-bot <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Bump vite from 5.4.14 to 5.4.19 in /reactions/signalr/signalr-reaction/clients/vue (drasi-project#216) * Bump vite in /reactions/signalr/signalr-reaction/clients/vue Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.14 to 5.4.19. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v5.4.19/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v5.4.19/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 5.4.19 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <[email protected]> * Update deploy-resources.js * Revert "Update deploy-resources.js" This reverts commit 1d1d75a. * wip * wip * wip * wip * wip --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Update readme.md to add CNCF Sandbox link (drasi-project#199) Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Bump tokio from 1.40.0 to 1.43.1 in /control-planes/kubernetes_provider (drasi-project#187) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.40.0 to 1.43.1. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](tokio-rs/tokio@tokio-1.40.0...tokio-1.43.1) --- updated-dependencies: - dependency-name: tokio dependency-version: 1.43.1 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Bump openssl from 0.10.66 to 0.10.72 in /sources/shared/query-api (drasi-project#182) Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.66 to 0.10.72. - [Release notes](https://github.com/sfackler/rust-openssl/releases) - [Commits](sfackler/rust-openssl@openssl-v0.10.66...openssl-v0.10.72) --- updated-dependencies: - dependency-name: openssl dependency-version: 0.10.72 dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Bump ring from 0.17.8 to 0.17.13 in /control-planes/kubernetes_provider (drasi-project#163) Bumps [ring](https://github.com/briansmith/ring) from 0.17.8 to 0.17.13. - [Changelog](https://github.com/briansmith/ring/blob/main/RELEASES.md) - [Commits](https://github.com/briansmith/ring/commits) --- updated-dependencies: - dependency-name: ring dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Bump crossbeam-channel from 0.5.13 to 0.5.15 in /query-container (drasi-project#191) Bumps [crossbeam-channel](https://github.com/crossbeam-rs/crossbeam) from 0.5.13 to 0.5.15. - [Release notes](https://github.com/crossbeam-rs/crossbeam/releases) - [Changelog](https://github.com/crossbeam-rs/crossbeam/blob/master/CHANGELOG.md) - [Commits](crossbeam-rs/crossbeam@crossbeam-channel-0.5.13...crossbeam-channel-0.5.15) --- updated-dependencies: - dependency-name: crossbeam-channel dependency-version: 0.5.15 dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Bump tokio from 1.39.2 to 1.43.1 in /control-planes/mgmt_api (drasi-project#185) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.39.2 to 1.43.1. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](tokio-rs/tokio@tokio-1.39.2...tokio-1.43.1) --- updated-dependencies: - dependency-name: tokio dependency-version: 1.43.1 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Eventgrid Reaction bug fix (drasi-project#198) * cloudevent done * tested eventgrid * updated sdk Signed-off-by: ruokun-niu <[email protected]> * queue item encoding (drasi-project#224) Signed-off-by: ruokun-niu <[email protected]> * Update index.html (drasi-project#227) Makes the tab title in browser identifiable Signed-off-by: ruokun-niu <[email protected]> * Update readme.md to add OpenSSF badge (drasi-project#230) Signed-off-by: ruokun-niu <[email protected]> * Add Sync-Dapr-StateStore Reaction (drasi-project#218) Signed-off-by: ruokun-niu <[email protected]> * update libraries (drasi-project#233) Signed-off-by: ruokun-niu <[email protected]> * Updated the DevSkim workflow to use ubuntu-latest (drasi-project#228) Signed-off-by: ruokun-niu <[email protected]> * Reduce number of pull requests from dependabot (drasi-project#232) Signed-off-by: ruokun-niu <[email protected]> * Observability stack for drasi-platform (drasi-project#189) * metrics observability * metrics and tracing * removed zipkin; updated tracing and metrics * update otel setting; tracing working * validate flag * test trace working * updated pvc for the observability tools * storage configuration Signed-off-by: ruokun-niu <[email protected]> * Use Renovate Github App instead of Dependabot (drasi-project#240) * Use Renovate Github App instead of Dependabot Signed-off-by: ruokun-niu <[email protected]> * Bump tokio from 1.42.0 to 1.43.1 in /sources/sdk/rust/example/proxy (drasi-project#186) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.42.0 to 1.43.1. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](tokio-rs/tokio@tokio-1.42.0...tokio-1.43.1) --- updated-dependencies: - dependency-name: tokio dependency-version: 1.43.1 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Update drasi core (drasi-project#243) Signed-off-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Add end to end tests for SyncDaprStateStore reaction (drasi-project#241) Note: Snyk parsing failed for package-lock.json file. Signed-off-by: ruokun-niu <[email protected]> * Add Post-Dapr-PubSub Reaction (drasi-project#226) Signed-off-by: Aman Singh <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Register the middlewares with query host (drasi-project#250) Signed-off-by: Aman Singh <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Fix enum conversion bug in Post-PubSub-Reaction (drasi-project#252) Signed-off-by: Aman Singh <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * check exists (drasi-project#255) Signed-off-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * check for 0.0.0.0 ip from k3d bug (drasi-project#257) Signed-off-by: ruokun-niu <[email protected]> * Bump @babel/runtime from 7.26.0 to 7.26.10 in /typespec (drasi-project#170) Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.26.0 to 7.26.10. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.26.10/packages/babel-runtime) --- updated-dependencies: - dependency-name: "@babel/runtime" dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Update renovate config (drasi-project#261) * Update renovate config Signed-off-by: Aman Singh <[email protected]> * increase wait time before auto merge Signed-off-by: Aman Singh <[email protected]> --------- Signed-off-by: Aman Singh <[email protected]> Signed-off-by: ruokun-niu <[email protected]> --------- Signed-off-by: ruokun-niu <[email protected]> Signed-off-by: dependabot[bot] <[email protected]> Signed-off-by: Daniel Gerlag <[email protected]> Signed-off-by: Aman Singh <[email protected]> Co-authored-by: Luke Murray <[email protected]> Co-authored-by: Aman Singh <[email protected]> Co-authored-by: Daniel Gerlag <[email protected]> Co-authored-by: snyk-bot <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Nandita Valsan <[email protected]> Co-authored-by: ms-nateb <[email protected]> Signed-off-by: ruokun-niu <[email protected]>
* Add end to end tests for SyncDaprStateStore reaction (#241) Note: Snyk parsing failed for package-lock.json file. Signed-off-by: ruokun-niu <[email protected]> * nit Signed-off-by: ruokun-niu <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * removed logging Signed-off-by: ruokun-niu <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * updated redis ID creation ; Signed-off-by: ruokun-niu <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * removed commented code Signed-off-by: ruokun-niu <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * lint fix Signed-off-by: ruokun-niu <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * fixed test Signed-off-by: ruokun-niu <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Add Post-Dapr-PubSub Reaction (#226) Signed-off-by: Aman Singh <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Register the middlewares with query host (#250) Signed-off-by: Aman Singh <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Fix enum conversion bug in Post-PubSub-Reaction (#252) Signed-off-by: Aman Singh <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * check exists (#255) Signed-off-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * check for 0.0.0.0 ip from k3d bug (#257) Signed-off-by: ruokun-niu <[email protected]> * Bump @babel/runtime from 7.26.0 to 7.26.10 in /typespec (#170) Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.26.0 to 7.26.10. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.26.10/packages/babel-runtime) --- updated-dependencies: - dependency-name: "@babel/runtime" dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Update renovate config (#261) * Update renovate config Signed-off-by: Aman Singh <[email protected]> * increase wait time before auto merge Signed-off-by: Aman Singh <[email protected]> --------- Signed-off-by: Aman Singh <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Added a README file for all of our Github workflows in platform (#245) Signed-off-by: ruokun-niu <[email protected]> * Fixed Rust Source SDK tests and updated the workflow & makefiles for testing Source SDKs (#180) * test fix Signed-off-by: ruokun-niu <[email protected]> * typespec Signed-off-by: ruokun-niu <[email protected]> * updated makefile to run test before publish Signed-off-by: ruokun-niu <[email protected]> * added test run for source sdk Signed-off-by: ruokun-niu <[email protected]> * java jdk setup Signed-off-by: ruokun-niu <[email protected]> * protobuf Signed-off-by: ruokun-niu <[email protected]> * updated makefile and sln file for dotnet, updated typespec Signed-off-by: ruokun-niu <[email protected]> * restore SourceChange type Signed-off-by: ruokun-niu <[email protected]> * Query Bootstrap Tracing (#179) * modified span * working * clean up * nit * deleted unused imports * cargo fmt Signed-off-by: ruokun-niu <[email protected]> * Fixed spelling of 'Installing'. (#195) Signed-off-by: ruokun-niu <[email protected]> * Add k3d-load target to all Makefiles (#203) Signed-off-by: ruokun-niu <[email protected]> * updated storage queue name in the GH workflows (#188) Signed-off-by: ruokun-niu <[email protected]> * readme (#183) Signed-off-by: ruokun-niu <[email protected]> * keep debug view sorted on changes (#184) Signed-off-by: ruokun-niu <[email protected]> * Environment Management & k3s encapsulated Drasi (#200) * wip * wip * wip * wip * wip * cli wip * wip * wip * wip * wip * fix tests * wip * load local images * engines * Update deploy-resources.js * Update k8s.test.js Signed-off-by: ruokun-niu <[email protected]> * [Snyk] Fix for 8 vulnerabilities (#204) * fix: sources/sdk/java/pom.xml to reduce vulnerabilities The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JAVA-ORGYAML-3152153 - https://snyk.io/vuln/SNYK-JAVA-COMGOOGLEPROTOBUF-8055227 - https://snyk.io/vuln/SNYK-JAVA-COMGOOGLEPROTOBUF-2331703 - https://snyk.io/vuln/SNYK-JAVA-COMGOOGLEPROTOBUF-3167772 - https://snyk.io/vuln/SNYK-JAVA-COMSQUAREUPOKHTTP3-2958044 - https://snyk.io/vuln/SNYK-JAVA-COMMONSIO-8161190 - https://snyk.io/vuln/SNYK-JAVA-COMGOOGLEPROTOBUF-3040284 - https://snyk.io/vuln/SNYK-JAVA-ORGJETBRAINSKOTLIN-2628385 * update samples * fix for breaking dapr sdk change * update sdk version --------- Co-authored-by: snyk-bot <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Bump vite from 5.4.14 to 5.4.19 in /reactions/signalr/signalr-reaction/clients/vue (#216) * Bump vite in /reactions/signalr/signalr-reaction/clients/vue Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.14 to 5.4.19. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v5.4.19/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v5.4.19/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 5.4.19 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <[email protected]> * Update deploy-resources.js * Revert "Update deploy-resources.js" This reverts commit 1d1d75a. * wip * wip * wip * wip * wip --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Update readme.md to add CNCF Sandbox link (#199) Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Bump tokio from 1.40.0 to 1.43.1 in /control-planes/kubernetes_provider (#187) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.40.0 to 1.43.1. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](tokio-rs/tokio@tokio-1.40.0...tokio-1.43.1) --- updated-dependencies: - dependency-name: tokio dependency-version: 1.43.1 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Bump openssl from 0.10.66 to 0.10.72 in /sources/shared/query-api (#182) Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.66 to 0.10.72. - [Release notes](https://github.com/sfackler/rust-openssl/releases) - [Commits](sfackler/rust-openssl@openssl-v0.10.66...openssl-v0.10.72) --- updated-dependencies: - dependency-name: openssl dependency-version: 0.10.72 dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Bump ring from 0.17.8 to 0.17.13 in /control-planes/kubernetes_provider (#163) Bumps [ring](https://github.com/briansmith/ring) from 0.17.8 to 0.17.13. - [Changelog](https://github.com/briansmith/ring/blob/main/RELEASES.md) - [Commits](https://github.com/briansmith/ring/commits) --- updated-dependencies: - dependency-name: ring dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Bump crossbeam-channel from 0.5.13 to 0.5.15 in /query-container (#191) Bumps [crossbeam-channel](https://github.com/crossbeam-rs/crossbeam) from 0.5.13 to 0.5.15. - [Release notes](https://github.com/crossbeam-rs/crossbeam/releases) - [Changelog](https://github.com/crossbeam-rs/crossbeam/blob/master/CHANGELOG.md) - [Commits](crossbeam-rs/crossbeam@crossbeam-channel-0.5.13...crossbeam-channel-0.5.15) --- updated-dependencies: - dependency-name: crossbeam-channel dependency-version: 0.5.15 dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Bump tokio from 1.39.2 to 1.43.1 in /control-planes/mgmt_api (#185) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.39.2 to 1.43.1. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](tokio-rs/tokio@tokio-1.39.2...tokio-1.43.1) --- updated-dependencies: - dependency-name: tokio dependency-version: 1.43.1 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Eventgrid Reaction bug fix (#198) * cloudevent done * tested eventgrid * updated sdk Signed-off-by: ruokun-niu <[email protected]> * queue item encoding (#224) Signed-off-by: ruokun-niu <[email protected]> * Update index.html (#227) Makes the tab title in browser identifiable Signed-off-by: ruokun-niu <[email protected]> * Update readme.md to add OpenSSF badge (#230) Signed-off-by: ruokun-niu <[email protected]> * Add Sync-Dapr-StateStore Reaction (#218) Signed-off-by: ruokun-niu <[email protected]> * update libraries (#233) Signed-off-by: ruokun-niu <[email protected]> * Updated the DevSkim workflow to use ubuntu-latest (#228) Signed-off-by: ruokun-niu <[email protected]> * Reduce number of pull requests from dependabot (#232) Signed-off-by: ruokun-niu <[email protected]> * Observability stack for drasi-platform (#189) * metrics observability * metrics and tracing * removed zipkin; updated tracing and metrics * update otel setting; tracing working * validate flag * test trace working * updated pvc for the observability tools * storage configuration Signed-off-by: ruokun-niu <[email protected]> * Use Renovate Github App instead of Dependabot (#240) * Use Renovate Github App instead of Dependabot Signed-off-by: ruokun-niu <[email protected]> * Bump tokio from 1.42.0 to 1.43.1 in /sources/sdk/rust/example/proxy (#186) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.42.0 to 1.43.1. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](tokio-rs/tokio@tokio-1.42.0...tokio-1.43.1) --- updated-dependencies: - dependency-name: tokio dependency-version: 1.43.1 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Update drasi core (#243) Signed-off-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Add end to end tests for SyncDaprStateStore reaction (#241) Note: Snyk parsing failed for package-lock.json file. Signed-off-by: ruokun-niu <[email protected]> * Add Post-Dapr-PubSub Reaction (#226) Signed-off-by: Aman Singh <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Register the middlewares with query host (#250) Signed-off-by: Aman Singh <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Fix enum conversion bug in Post-PubSub-Reaction (#252) Signed-off-by: Aman Singh <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * check exists (#255) Signed-off-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * check for 0.0.0.0 ip from k3d bug (#257) Signed-off-by: ruokun-niu <[email protected]> * Bump @babel/runtime from 7.26.0 to 7.26.10 in /typespec (#170) Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.26.0 to 7.26.10. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.26.10/packages/babel-runtime) --- updated-dependencies: - dependency-name: "@babel/runtime" dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * Update renovate config (#261) * Update renovate config Signed-off-by: Aman Singh <[email protected]> * increase wait time before auto merge Signed-off-by: Aman Singh <[email protected]> --------- Signed-off-by: Aman Singh <[email protected]> Signed-off-by: ruokun-niu <[email protected]> --------- Signed-off-by: ruokun-niu <[email protected]> Signed-off-by: dependabot[bot] <[email protected]> Signed-off-by: Daniel Gerlag <[email protected]> Signed-off-by: Aman Singh <[email protected]> Co-authored-by: Luke Murray <[email protected]> Co-authored-by: Aman Singh <[email protected]> Co-authored-by: Daniel Gerlag <[email protected]> Co-authored-by: snyk-bot <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Nandita Valsan <[email protected]> Co-authored-by: ms-nateb <[email protected]> Signed-off-by: ruokun-niu <[email protected]> * updated redis change stream to accept u128 rather than Option<u128> Signed-off-by: ruokun-niu <[email protected]> * cargo fmt Signed-off-by: ruokun-niu <[email protected]> * use self hosted images (#259) Signed-off-by: Daniel Gerlag <[email protected]> Signed-off-by: ruokun-niu <[email protected]> --------- Signed-off-by: ruokun-niu <[email protected]> Signed-off-by: ruokun-niu <[email protected]> Signed-off-by: Aman Singh <[email protected]> Signed-off-by: Daniel Gerlag <[email protected]> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Aman Singh <[email protected]> Co-authored-by: Daniel Gerlag <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Luke Murray <[email protected]> Co-authored-by: snyk-bot <[email protected]> Co-authored-by: Nandita Valsan <[email protected]> Co-authored-by: ms-nateb <[email protected]>
Description
Adding a PostDaprPubSub Reaction for Drasi, which is designed to forward change notifications to Dapr Pub/Sub topics.
Overview
The PostDaprPubSub reaction allows developers to integrate Drasi's real-time query outputs with other services via Dapr's publish-subscribe mechanism. It handles both data change events and control signals, offering configurable behavior per query.
Key Features
ChangeEvent
orControlEvent
as a single message.pubsubName
: The Dapr pub/sub component name.topicName
: The Dapr topic to publish to.packed
: Boolean to enable packed event format.maxFailureCount
: Threshold for consecutive errors before a query is marked as failed.skipControlSignals
: Boolean to disable forwarding of control signals.maxFailureCount
is exceeded, the query is marked as failed, and further processing for it is halted until reset.Core Components Added
Program.cs
: Main application entry point; builds and starts the reaction.QueryConfig.cs
: Defines the C# model for query-specific JSON configuration.ChangeHandler.cs
: ImplementsIChangeEventHandler
to processChangeEvent
objects from Drasi, format them, and publish to Dapr.ControlSignalHandler.cs
: ImplementsIControlEventHandler
to processControlEvent
objects and publish them to Dapr.Services/DrasiChangeFormatter.cs
: FormatsChangeEvent
data into the Drasi native structure for unpacked messages.Services/ChangeFormatterFactory.cs
: Provides instances ofIChangeFormatter
.QueryFailureTracker.cs
: ImplementsIQueryFailureTracker
to monitor and manage query failures.Services/QueryConfigValidationService.cs
: Validates all query configurations at startup.Services/DaprInitializationService.cs
: Ensures the Dapr sidecar is available before the reaction fully starts.ErrorStateHandler.cs
: Provides a mechanism to terminate the reaction in case of critical errors.Models/Unpacked.generated.cs
: C# classes representing the structure of unpacked Drasi native event formats.Testing
Unit Tests (
Drasi.Reactions.PostDaprPubSub.Tests/
):A suite of xUnit tests covers the core logic, including:
ChangeHandlerTests
ControlSignalHandlerTests
QueryConfigTests
(and its validation)QueryFailureTrackerTests
DaprInitializationServiceTests
QueryConfigValidationServiceTests
ChangeFormatterTests
(for Drasi native format)ErrorStateHandlerTests
End-to-End Tests:
INSERT
operations on theproduct
table trigger the publication of change events.UPDATE
operations on theproduct
table trigger the publication of change events.e2e-topic-packed
topic, containing the relevant change data and query ID (product-updates-packed
).e2e-topic-unpacked
topic, detailing individual changes with correctbefore
andafter
states (or absence thereof for inserts) and the appropriate query ID (product-updates-unpacked
).Manual Validation Environment (
validation/
):A self-contained validation setup is provided to test the reaction end-to-end within a local Kubernetes (k3d/Kind) environment. This includes:
Makefile
(validation/Makefile
) to deploy PostgreSQL, Redis, Dapr components, the reaction itself, and two sample Python FastAPI subscriber applications.validation/subscriber_alpha/
andvalidation/subscriber_beta/
) that listen to Dapr topics and log received messages.validation/common/
) for all necessary components, including DrasiSource
,ContinuousQuery
, andReaction
resources for a demo scenario.Documentation
README.md
: Provides a detailed overview of the reaction, its features, configuration parameters, event formats, and examples.Type of change
Fixes: #247