You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/logic-apps/business-continuity-disaster-recovery-guidance.md
+18-16Lines changed: 18 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -88,7 +88,7 @@ The data gateway resource is associated with a location or Azure region, just li
88
88
> ISE-versioned connectors for on-premises data sources, you don't need the data
89
89
> gateway because ISE connectors provide direct access to the the on-premises resource.
90
90
>
91
-
> If no ISE-versioned connector is available for the resource that you want,
91
+
> If no ISE-versioned connector is available for the on-premises resource that you want,
92
92
> your logic app can still create the connection by using a non-ISE connector,
93
93
> which runs in the global multi-tenant Azure, not your ISE. However, this connection
94
94
> requires the on-premises data gateway.
@@ -101,8 +101,8 @@ You can set up your primary and secondary locations so that your logic app insta
101
101
102
102
| Primary-secondary role | Description |
103
103
|------------------------|-------------|
104
-
|*Active-active*|Both logic app instances in both locations actively handle requests, for example: <p><p>- You can have the secondary instance listen at an HTTP endpoint and have traffic load balanced to that instance as necessary. <p>- Or, you can have the second instance act as a competing consumer so that both instances compete for messages from a queue. If one instance fails, the other instance takes over the workload. |
105
-
|*Active-passive*| The primary logic app instance handles the entire workload, while the secondary instance is passive or inactive. The secondary waits for a signal that the primary is unavailable or not working due to disruption or failure and takes over the workload as the active instance. |
104
+
|*Active-active*|The primary and secondary logic app instances in both locations are enabled and actively handle requests by following either of these patterns: <p><p>- *Load balance*: You can have both instances listen to an endpoint and load balance traffic to each instance as necessary. <p>- *Competing consumers*: You can have both instances act as competing consumers so that the instances compete for messages from a queue. If one instance fails, the other instance takes over the workload. |
105
+
|*Active-passive*| The primary logic app instance is enabled and actively handles the entire workload, while the secondary instance is passive (disabled or inactive). The secondary waits for a signal that the primary is unavailable or not working due to disruption or failure and takes over the workload as the active instance. |
106
106
| Combination | Some logic apps play an active-active role, while other logic apps play an active-passive role. |
107
107
|||
108
108
@@ -146,7 +146,7 @@ To minimize the number of abandoned in-progress workflow instances, you can choo
This enterprise message pattern that splits a business process into smaller stages. For each stage, you set up a logic app that handles the workload for that stage. To communicate with each other, your logic apps use an asynchronous messaging protocol such as Azure Service Bus queues or topics. When you divide a process into smaller stages, you reduce the number of stages that might get stuck on a failed logic app instance. For more general information about this pattern, see [Enterprise integration patterns - Routing slip](https://www.enterpriseintegrationpatterns.com/patterns/messaging/RoutingTable.html).
149
+
This enterprise message pattern that splits a business process into smaller stages. For each stage, you set up a logic app that handles the workload for that stage. To communicate with each other, your logic apps use an asynchronous messaging protocol such as Azure Service Bus queues or topics. When you divide a process into smaller stages, you reduce the number of business processes that might get stuck on a failed logic app instance. For more general information about this pattern, see [Enterprise integration patterns - Routing slip](https://www.enterpriseintegrationpatterns.com/patterns/messaging/RoutingTable.html).
150
150
151
151
This example shows a routing slip pattern where each logic app represents a stage and uses a Service Bus queue to communicate with the next logic app in the process.
152
152
@@ -168,7 +168,7 @@ To get more information about your logic app's past workflow executions, you can
168
168
169
169
## Trigger type guidance
170
170
171
-
The trigger type that you use in your logic apps determines your options for how you can set up logic apps across locations in your disaster recovery strategy. You can use these trigger types in logic apps:
171
+
The trigger type that you use in your logic apps determines your options for how you can set up logic apps across locations in your disaster recovery strategy. Here are the available trigger types that you can use in logic apps:
172
172
173
173
*[Recurrence trigger](#recurrence-trigger)
174
174
*[Polling trigger](#polling-trigger)
@@ -184,23 +184,25 @@ The **Recurrence** trigger is independent from any specific service or endpoint,
184
184
* A fixed frequency and interval, such as every 10 minutes
185
185
* A more advanced schedule, such as the last Monday of every month at 5:00 PM
186
186
187
-
If your logic app starts with a Recurrence trigger, you need to set up the primary and secondary instances as active-passive in their respective locations. To reduce the *recovery time objective* (RTO), which refers to the target duration for restoring a business process after a disruption or disaster, you can set up logic apps that use Recurrence triggers either as active-passive or passive-active. In this setup, you split the schedule across locations.
187
+
So, if your logic app starts with a Recurrence trigger, you need to set up the primary and secondary logic app instances with the ]active-passive roles](#roles).
188
188
189
-
For example, if you have a logic app that needs to run every 10 minutes, set up your logic apps and locations as follows:
189
+
To reduce the *recovery time objective* (RTO), which refers to the target duration for restoring a business process after a disruption or disaster, you can set logic app instances that start with Recurrence triggers in a combination of [active-passive roles](#roles)and [passive-active roles](#roles). In this setup, you split the schedule across locations.
190
190
191
-
* Active-passive
191
+
For example, if you want to have a logic app that must run every 10 minutes, you can set up your logic apps and locations as follows:
192
192
193
-
* In the primary location, set the *active* logic app's Recurrence trigger to a 20-minute recurrence that starts at the top of the hour, for example, 9:00 AM.
193
+
* In the primary location, set up [active-passive roles](#roles)for these logic apps:
194
194
195
-
*In the secondary location, set the *passive*logic app's Recurrence trigger to a 20-minute recurrence that starts at 10 minutes past the hour that's set in the other location, for example, 9:10 AM.
195
+
*On the *active* (enabled) logic app, set the Recurrence trigger to a 20-minute recurrence that starts at the top of the hour, for example, 9:00 AM.
196
196
197
-

197
+
* On the *passive* (disabled) logic app, set the Recurrence trigger to a 20-minute recurrence that starts at 10 minutes past the hour, for example, 9:10 AM.
198
198
199
-
* Passive-active
199
+

200
200
201
-
* In the secondary location, set the *active* logic app's Recurrence trigger to a 20-minute recurrence that starts at 10 minutes past the hour, for example, 9:10 AM.
201
+
* For the reverse configuration in the secondary location, set up [passive-active](#roles)for these logic apps:
202
202
203
-
* In the primary location, set the *passive* logic app's Recurrence trigger to a 20-minute recurrence that starts at the top of the hour that's set in the other location, for example, 9:00 AM.
203
+
* On the *active* logic app's, set the Recurrence trigger to a 20-minute recurrence that starts at 10 minutes past the hour, for example, 9:10 AM.
204
+
205
+
* On the *passive* logic app, set the Recurrence trigger to a 20-minute recurrence that starts at the top of the hour that's set in the other location, for example, 9:00 AM.
204
206
205
207
When a disruptive event happens in one location, enable the passive logic app. That way, if discovering the failure takes time, this configuration limits the number of missed recurrences during that delay.
206
208
@@ -259,9 +261,9 @@ The **Request** trigger makes your logic app callable from other apps, services,
259
261
260
262
From a disaster recovery perspective, the Request trigger plays a passive role because the logic app doesn't do any work and waits until some other service or system explicitly calls the trigger. As a passive endpoint, you can set up your primary and secondary instances in these ways:
261
263
262
-
*[Active-active](#roles): Both instances are enabled and active. The caller or router balances or distributes traffic between those instances.
264
+
*[Active-active](#roles): Both instances are enabled. The caller or router balances or distributes traffic between those instances.
263
265
264
-
*[Active-passive](#roles): Only the primary instance is enabled and active, handling all the work. The secondary instance is inactive and waits until the primary is disrupted or fails. The caller or router determines when to enable the secondary instance.
266
+
*[Active-passive](#roles): Only the primary instance is enabled and handles all the work. The secondary instance is disabled and waits until the primary is disrupted or fails. The caller or router determines when to enable the secondary instance.
265
267
266
268
As a recommended architecture, you can use Azure API Management as a proxy for the logic apps that use Request triggers. API Management provides [built-in cross-regional resiliency and the capability to route traffic across multiple endpoints](https://docs.microsoft.com/azure/api-management/api-management-howto-deploy-multi-region).
0 commit comments