Pushpad: improvements to deliverability and monitoring

Today we have deployed a new version of Pushpad which improves deliverability of push notifications and make it easier to find and debug any delivery failure.

Here’s what has changed internally:

  • Pushpad only establishes connections with known push services, thus banning unreliable hosts (like “chromlum”) that can produce long, useless  waits and eventually produce a denial of service
  • On the other hand we have increased the HTTP timeouts when we connect to reliable push services: thus, even if there are problems on the network, there are more chances that the notification gets delivered
  • We have also increased the number of retries in case the notification delivery fails: a total of 4 attempts is made with exponential backoff (20 seconds * 3^n)
  • We have enabled retries even when the push service (e.g. Mozilla autopush, Firebase) returns a 5xx status code: thus transient errors do not cause a delivery failure

We have also made some improvements to notification tracking and monitoring.

From the dashboard, click on any notification to see the details. Now you can also see:

  • the total number of recipients
  • a detailed report about failed deliveries
  • some pie charts about the delivery rate and click rate

That information is also available in aggregated form in the project stats, which are accessible from the dashboard.

Leave a Reply

Your email address will not be published. Required fields are marked *