This article is from before the rebranding to SelfGuide. Text and images can include the old product name ProductivityPerformer or its abbreviation PP.

SelfGuide is a SaaS application hosted on Microsoft Azure, build and maintained by SelfGuide. In this article, the high level architecture of the application is explained, as also aspects as maintenance and access.

Tenant architecture

All customer use a dedicated SelfGuide tenant to create and consume content, the tenant can be recognized by the URL The name of the tenant is chosen when started and can not be changed in the future.

Azure Resources

Each tenant is build on its own Microsoft Azure resources and these resources act as the boundaries of a SelfGuide tenant. This design is chosen for an optimal security posture to overcome risks like unwanted data access across customers. Also, if needed, there is flexibility to scale tenant resources to give all customers the desired performance.

A tenant consists of the resources below:

  • Front-End: Azure App Service, responsible for the UI and static content
  • API: Azure App Service, responsible for all data. The UI and API are working together to deliver all functionality.
  • Database: Used to store all tenant data except images. Data is only accessible through the API.
  • Blob: Used to store all images like Instruction step images, recording data, User Guide preface contents, etc. All data in the blob is maintained by the API and accessible by a temporary URLᅠsupplied by the API.


A disaster recovery scenario is taken care of with several measures:

  • Backups are created several times a day for all data stored in the database and blob
  • Backup datasets are stored in a different hosting location to increase the availability in case of a disaster
  • Backup datasets are kept for 7 days and automatically groomed

Additional measures are available in case the hosting location, as also the backup location, are unavailable:

  • Backups are created each day to a different hosting party (Amazon AWS)
  • Backup datasets are kept for 21 days and automatically groomed


Microsoft Azure resources are monitored to gain insights about availability, performance an usage. The product itself sends additional telemetry information. Monitoring data is used to:

  • Act timely in case of outages
  • Perform maintenance to improve the product
  • Extend and improve the product in new releases

Hosting locations

All Azure resources are hosted in Azure region West Europe, in a datacenter in The Netherlands. Backup sets are stored separately using Azure region North Europe, in a datacenter in Ireland.

Backup datasets are stored in Amazon AWS region Europe (Frankfurt) Region.


Product maintenance and release deployments are solely performed by SelfGuide employees. A fixed group of employees has access to the production tenants resources, all with extensive knowledge about the product. Access is gained using personal administrative accounts, audit trails are stored to gain insights in used access and performed operations.