Skip to content

fix: add retries and provider failover to notification delivery - #1338

Open
DevALVIN-24 wants to merge 1 commit into
Pulsefy:mainfrom
DevALVIN-24:fix-notification-delivery-retries
Open

DevALVIN-24 wants to merge 1 commit into
Pulsefy:mainfrom
DevALVIN-24:fix-notification-delivery-retries

Conversation

@DevALVIN-24

Copy link
Copy Markdown

closes #1210

Description:
This pull request addresses the transient provider outage issue that previously led to silently dropped user-facing notifications.

Changes:

  • Retry Mechanism: Implemented inline exponential backoff (e.g. 1s, 2s, 4s, etc.) up to 3 max retries to protect against transient provider failures without dropping logs.
  • Permanent Failure Recording: Persists error stack and failure reasons on the log's metadata.failureReason on exhausting retry limits or striking a permanent error for queryability via getDeliveryLogsForUser.
  • Provider & Channel Failover:
    • Added primary to secondary provider failover for email delivery.
    • Built channel fallback support that auto-routes CRITICAL severity notifications from Push to Email, or Email to SMS, ensuring vital deliveries arrive despite channel blackouts.
  • Prometheus Metrics: Integrated existing @Global MetricsService to export counts for delivery attempts, successes, permanent failures, and failovers.
  • Tracked Issues: Updated all raw markers to sequentially tracked codebase pointers (#1021 through #1025).

@drips-wave

drips-wave Bot commented Aug 27, 2026

Copy link
Copy Markdown

@DevALVIN-24 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@Cedarich

Copy link
Copy Markdown
Contributor

@DevALVIN-24 kindly fix CI

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Backend: Add retries and provider failover to notification delivery

2 participants