High level design for Push Notifications with Aurea Social Sites

Aurea Social Sites implements Push Notifications as part of the regular notification processing job. It simply just adds a step to the end of that process.

If the user has selected to receive Push Notifications any their devices running Aurea Social mobile application, it is processed at this time.

Aurea Social Sites utilizes a Cloud Service running in the Microsoft Azure Cloud to handle the platform specific distribution of the notifications. By doing so we centralize the configuration needed to communicate with all of the device vendors directly.

Both Apple and Google require certificates and/or keys to properly communicate. By keeping this centrally deployed in the Cloud, Skyvera can manage that for all of its customers.

Cloud Service running in the Microsoft Azure Cloud

Processing steps:

  • Aurea Social Sites processes notifications in a custom Skyvera SharePoint job. The same process that generates notifications in the web UI and email notifications also generates the push notification.
  • Users in the mobile application enables or disables push notifications. The enable action generates a call to the phone’s platform notification provider, Apple, Google or Microsoft, to register the device for push notifications. This is not a Skyvera service and is specific to the phone’s platform. Once the device is registered, it forwards the Device Token (provided by the call to the device specific platform vender) to Social Sites. We store that in our database for the user.
  • When the user gets a notification, we look to see if they have any devices registered to get a push notification. If they do, a request with the ID of the event, the Title, a Summary, and the user’s ID are POSTED to the Skyvera Mobile Services in Azure.
  • Based on the input, the Azure service will collect all the information that is needed to communicate with the phone’s platform provider (certificates, keys, etc.) and POST a message to that service (Apple, Google, or Microsoft) to send the push notification.
  • If at any point the user selects to no longer get notifications. The application on the phone will send a message to Social Sites and the Device Token will be deleted from our tables and push notifications will end for that device/user.

It’s important to know that the Azure service stores very little information. In fact, the only time anything is stored is in the event of a failure. We can get errors from the providers for various reasons. We log that information so that we can troubleshoot.

Both Google and Apple also reports back to us any Device Token that is no longer valid, for whatever reason. We keep that invalid Device Token in our tables in Azure as we are required by the providers to stop sending requests to devices that have an invalid token.