Workflow and settings
When content is updated in the Primary region, the changes are saved to database and related NLB messages are distributed via Azure Redis to all connected nodes, including Sitefinity CMS instances in the Secondary regions. NLB messages contain two additional fields - Connection and Timestamp. Timestamp field indicates when the message was created and Connection field indicates which connection performed the database update. Periodically, all Sitefinity CMS instances in the Primary region are writing a connection timestamp to the database.
In the Secondary regions, all Sitefinity CMS instances periodically read database connection timestamps and store those values in memory. When NLB message arrives, Sitefinity CMS compares message timestamp and database timestamp. If the message timestamp is smaller than the database timestamp, the replication process does not update the Secondary database to a state that it is ready to process the NLB message. In this case, the NLB message is stored in memory for later processing. After predefined amount of time, Sitefinity CMS checks again which NLB messages can be processed – these that have timestamp smaller than database timestamp and handle them. Once NLB messages are processed, Sitefinity CMS cache is invalidated and put into state common for all regions.
The following chart displays the process of database replication:
To access all settings the settings related to Multi-regional deployment setup, navigate to Settings » Advanced » System » LoadBalancing » Replication Sync Settings.
|Timestamp Write Interval
|The timestamp update interval (applicable for Primary Database).
|Write Inactivity Threshold
|In case a write operation is not performed in this interval, the timestamp update process is stopped. Once a write operation is performed, timestamp update process is reset as well.
|Timestamp Read Interval
|The timestamp read interval (applicable for Secondary Database).
|Message Retry Interval
|The period between two attempts for handling of unprocessed messages stored in the Redis instance.
|Max Unprocessed Messages
|The maximum number of unprocessed messages the system will hold before discarding them.
|Max Message Age
|The maximum age of unprocessed messages. Messages older than this value are discarded.
|The objects that will take care of message transportation and synchronization. By default, Redis transporter.