When configuring load balancing, you may have noticed a setting that says, “Use Push Logic.” Push logic helps improve load balancing performance and is left enabled by default. This article will describe the details behind push logic, its benefits, and what to do if an error occurs when enabling it.
Overview
Normally, if a document generation request is made, it is done by contacting the CRM directly. The document generation service typically checks the CRM every few seconds to see if there are document jobs to carry out. These frequent checks can put stress on the CRM, especially when load balancing is implemented. In cases where several documents must be generated quickly, this can cause problems, such as causing the CRM to hang.
Push logic improves load balancing performance and helps reduce stress on the CRM. It does this by making use of an external Azure App service—the Push Logic service–managed by mscrm-addons.com. Whenever there is a document job to perform, the CRM raises an internal flag within the Push Logic service. The document generation service then periodically checks if there are any raised flags within the Push Logic service. Whenever a flag is raised, the document generation service will then begin work on the available document job.
Note: The Push Logic service does not interact with any data. The service only informs the document generation service if there are tasks to work on.
Benefits
The benefits of push logic can be summarized into two key points:
- Faster reactions from the document generation service since the service can communicate more frequently than with the CRM.
- Prevents putting stress upon the CRM due to the CRM being contacted less.
Error Handling
If the external service cannot be reached, such as in cases where external addresses are blocked by your IT department, you may encounter the following error:
This error can be fixed simply by disabling push logic. Note that if this error occurs, load balancing still can be used, however, you may notice that your service will not perform as efficiently and the CRM will have to handle the higher load.
