Urgent.News

What's breaking now, across thousands of outlets.

Tech

Send Order Shipped Event Email and SMS Reports (With Actionable Delivery Alerts)

The page fires because a gaming studio's order shipped event should send an email notification with a generated report attached, plus an SMS notice, yet nobody can find the attachment. Short answer: generate and validate the report in the application, enqueue a separate notification job per recipient and channel, and page on the oldest overdue job before the inbox complaint arrives. Give each job…

When an order ships, the system should automatically send both an email notification and an SMS report. However, users have reported not being able to locate the attached report in their inbox. To address this, generate and validate the report within the application, then queue a separate notification job for each recipient and delivery method.

Assign each job a unique identifier stored in the database to ensure idempotent retries. Accepting a send is not conclusive evidence of successful delivery. Analyze the system's behavior to pinpoint where the attachment is failing: determine the report period and recipient, the job's last successful stage, and when that stage changed.

This information will yield a clear, actionable alert. Record each report in a database row keyed by report period, recipient, channel, and revision number. Track the report's state through various stages, including generation, attachment validation, queuing, accepted send, and delivery confirmation. Maintain details such as attempts made, retry schedule, error messages, and any provider-specific identifiers.

Generate the report using the studio's own process, as the mail provider is only responsible for sending the message, not for determining if the content is complete. If the attachment is missing or empty, reject it before adding the email to the queue. When revising a report after the initial delivery attempt, assign a new revision number to avoid confusion for operators replaying dead-letter jobs.

Link the identities of the email and SMS jobs, as well as the report, to facilitate correlation between the delivery states. Monitor the age of the oldest non-terminal job across different stages to better identify bottlenecks. An attachment-validated job that remains unprocessed for too long may indicate a problem with the queue or worker.

Keep track of dead-letter count, but remember it is a late indicator rather than a proactive signal. The page in question identifies the report period and stage affected, along with a link to the relevant ledger row for further investigation. While the integration process may seem complex, the primary challenge lies in tracing the various boundaries and dependencies that could impact delivery.

Infrai provides a unified REST API with email and SMS capabilities under a single key, offering a live discovery list of 295 routes across 20 modules. This approach reduces the need for multiple SDKs and simplifies the integration process. By using a single REST contract for email and SMS, the studio can focus on managing a consistent set of credentials and ledger entries.

While providers like Amazon SES, Twilio, and SendGrid offer specialized email and SMS services, each comes with its own set of requirements and operational nuances. Twilio Messaging can be a dedicated SMS solution, but combining it with email services requires reconciling multiple message identifiers and states. Ultimately, the decision should be based on the studio's existing backend capabilities and the specific needs of their integration strategy, rather than on the number of SDK installations.

The worker, report validator, and ledger management remain essential components of the system. Consider using versioned email templates to ensure consistent transactional content, and maintain an application-side registry for SMS templates and identifiers to avoid assuming a uniform discovery workflow across providers. If the studio plans to send reports to a large number of recipients, batching can optimize submission processes, but it does not address the need to manage individual recipient states.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

314 IPP and 44897 Raw Print Results: The Office Device Layer on the Open Internet

314 IPP and 44897 Raw Print Results: The Office Device Layer on the Open Internet Printers are the least interesting device category in most security programmes and one of the most consistently…

  • 44,897 devices respond to raw print port 9100, more than IPP ports
  • 314 devices respond to IPP port 631, less accessible than raw print
  • 299 devices respond to SNMP port 161, least exposed due to security measures

Automating Android Play Store Releases, Part 3: The Storage-Quota Wall

Part 3 of a 5-part series on automating a multi-app Android release pipeline. Part 1 → and Part 2 → covered getting the pipeline working — signing, versioning, tracks, release discipline.

  • GitHub's free-tier Actions storage quota is 500MB, quickly exceeded by pipeline activities.
  • Duplicate Gradle caches and 30-day retention on release files contributed to storage quota issues.
  • The real fix was ensuring pipeline independence from GitHub's shared storage.

More from Tuesday 22 September →