Skip to content

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

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

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

@Cedarich

Copy link
Copy Markdown
Contributor

Closing this as part of the Wave 8 → Wave 9 transition.

The board is being reset so Wave 9 issues can be opened against a clean backlog. This PR has been open 26 days without landing. All issues are being unassigned at the same time — the issues themselves stay open.

This is not a rejection of your work. If you want to carry it forward into Wave 9:

  1. Reopen this PR, or comment here and we will reopen it.
  2. Comment on the linked issue to have it reassigned to you.

Thanks for contributing to LumenPulse.

@Cedarich Cedarich closed this Sep 22, 2026
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