When to Use the Workflow Management System

The workflow management system provides the following key benefits. This information also describes the trade-offs to consider when you decide to use workflow to complete a business process.

The following are the key benefits.

  • Allocation - It can handle complex allocation logic for assigning work to users.
  • Consistency - It provides process automation which can improve consistency of outcomes.
  • Flexibility - It provides software control over processes which enables re-design in line with changing business needs.
  • Traceability - It provides a visual representation of when actions were taken, by whom and what stage a given process is at.
  • Customizability - Customers can re-sequence workflows provided by the application to suit their process needs.

However, you must also take the following trade-offs into account.

  • Performance - There is state maintenance overhead in enacting workflow processes.
  • Atomicity - Workflows are not atomic as each step can execute within its own transaction. This makes failure in later transactions difficult to recover from.

Since workflow is the automation of business processes, consider the following guidelines when deciding when to use workflow management to automate specific business processes.

  • Don't do any design until you have the requirements. Documented business process requirements are a prerequisite when considering when to apply workflow.
  • A workflow should be considered when a business process requires human interaction.
  • A workflow should not be used if a process can be automated end-to-end with no human interaction because using workflow in this scenario provides no benefit. It does not add any consistency, customizability or traceability above straight API calls and such the process contains no steps that require allocation. Therefore, unless there is a flexibility requirement to be able to re-sequence the steps at runtime, workflow should not be considered for such scenarios.
  • When presented with sequences of automated steps in a business process, consider providing APIs for each step and composing those API calls into a single method (which can then be called from the workflow)