If you are building or maintaining a solution that uses one big or multiple Power Automate flows, you are maybe wondering: What is the best choice, one big flow that does everything or several littler flows that do the same thing as the big one?
Since I am a developer, first of all, I am used to use object statements and object models. What does it mean?
To manage an item/object life cycle, using a flag that allows determining the statement of this item.
Statement Description 1 Created (default value) 2 Waiting for approbation 3 Approved 4 Rejected 5 Ready -1 Closed
- The object model consists in splitting the code/flow by logical context
Before you get started, it is important to be aware of the limits of Power Automate and the functional scope of this service:
- Power Automate is a service especially scoped for the final users. That means that the flows work with the user account credentials and accesses. In other words, this kind of automation should not be used for application tasks. For application tasks automation, prefer the usage of Logic Apps
- The performance varies in accordance with the user account license type (E3, E5, Premium, etc.)
- The available connector varies in accordance with the user account license. You can quickly be struggling because you can not perform some actions that can seem simple (ex: HTTP requests)
- The maximal number of triggers per user account. For a basic license (example: E3), 2 000 triggers per day. That can seem huge, but for a big application or an application used by a lot of users, this limit can be quickly reached
- Duration and retention history limits are 30 days per-flow
- and so much more...
Check the Microsoft documentation for more information about the services:
- Power Automate: Limits and configuration - Power Automate | Microsoft Docs
- Logic Apps: Limits and configuration reference guide - Azure Logic Apps | Microsoft Docs
Use Case: one big flow
|One flow to manage and maintain||A lot of actions in the same flow|
|No actions duplication||Longer execution time (timeout risk)|
|No external statement (metadata)||Complicate debugging|
|Sequential actions in order||Difficult even not possible to execute a part of flow only|
|If the same flow is too often used, Microsoft can disable it at any moment|
|Can reach the limit of nesting depth|