Skip to content

Create Wolverine handler for subscription validation queue #898

@tba76

Description

@tba76

Background

--
We have created a dedicated subscription validation queue (see #895). We now need to replace the Azure Function that validates webhook subscriptions with a Wolverine handler that consumes messages from this queue.
 
References:

Goal

Create a Wolverine handler that:

  1. Consumes messages from the subscription validation queue.
  2. Sends the validation event to the external webhook.
  3. Updates the database with the validation result via SubscriptionService.
  4. Replaces the existing Azure Function logic in SubscriptionValidation.cs.
     

Tasks

  • Identify which message contracts are used for validation and where they are published.
  • Implement a Wolverine handler that consumes messages from the subscription validation queue.
  • Wire the handler to send the event to the external webhook.
  • Update the validation result in the database via SubscriptionService.
  • Phase out/replace SubscriptionValidation.cs (and any bindings) so only the Wolverine handler is used.
  • Add/update relevant tests (unit/integration) for the handler.
  • Update documentation/config if needed.
     

Discussion: retry strategy

We need to clarify how we handle retries on failures in the validation flow. Topics to discuss:

  • Use Wolverine's built-in retry policy (backoff, max attempts, dead-letter).
  • Distinguish between transient failures (temporary network issues, 5xx) and permanent failures (4xx/validation errors).
  • Idempotency: ensure repeated attempts do not lead to inconsistent updates in SubscriptionService.
  • Logging/telemetry: what to log during retries and when we give up.
  • How to handle poison messages and alerting for operations.
     

Acceptance criteria

  • The Wolverine handler consumes messages from the subscription validation queue.
  • Webhook validation is sent to the external recipient.
  • Validation results are persisted via SubscriptionService.
  • SubscriptionValidation.cs is no longer in use.
  • Retry strategy is clarified and documented.

Metadata

Metadata

Labels

Type

No type

Projects

Status

✅ Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions