How to Build Reliable Bulk Report Delivery With Queues, SMS, and Cron Polling
A Node.js service designed to send bulk email and SMS notifications for generated reports can silently fail, showing 'report_delivery_unknown' even when worker dashboards appear healthy. The recommended architecture uses idempotent queue workers with deterministic idempotency keys, ensuring each delivery intent is tracked from creation through provider acceptance to terminal state. Applications should maintain their own template registry — including immutable revision IDs and provider mappings — rather than relying on vendor dashboards, since some SMS providers offer no template-list API. A cron poller should reconcile delivery status for both channels, storing four key timestamps in an application ledger to surface unresolved notifications before an on-call alert fires. Meaningful alerts should expose event class, template revision, affected recipient count, and oldest unreconciled notification age — not simply whether a worker completed.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.
Discussion (0)
Log in to join the discussion and vote.
Log in