How to use a Low-code platform with a Workflow Engine for rapid Business Process Automation. | by Gawie Yssel | CodeX | Sep, 2021

A practical example of using Workflow and Low-code for process automation.

Gawie Yssel

I recently discovered the open-source workflow engine Camunda after one of our customers mentioned using it with our low-code product, Linx. After looking through Camunda’s documentation, I realized that it could be a perfect partner for Linx.

  1. User task management. The user interface and logic that governs task allocation to users and how they interact with those tasks.
  2. Automated task execution. The mechanism to interact with other technologies. These may be connectors to APIs or hooks into one or more programming languages.

In theory, using a workflow engine to orchestrate business processes built with a low-code tool should give us the best of both worlds.

  • Flexibility. We can mix execution technologies. For example, use low-code where we can and code where we have to. Or have multiple, even different, workflow engines. Whatever works for the scenario.
  • Performance. We can scale the area that requires it. For example, if the workflow engine struggles, we scale that, and if any of the execution tasks need resources, we scale that.
  • Testing. We can test process logic and task execution separately.
  • Complexity. It might not always be obvious how the different pieces fit together, making it more challenging to maintain.

Lots of our customers still use files as part of their system integration flows. Files from System A are used to update System B. There are usually tens to hundreds of formats, all with different rules to apply. A common process is to import the file into a staging database, enrich the data, validate the data, and then update the target.

  • Create a function in Linx for each Service Task in Camunda. These functions should be idempotent as they might be called more than once for the same workflow instance if something goes wrong between Camunda and Linx.
  • Create a Timer Service in Linx to poll Camunda for tasks.
  • Add a function in Linx to match the Task Id with its related Linx function.

I quite like how this turned out. Combining a proper workflow engine with a developer-friendly low-code tool gives us the best of both worlds. We get an easy way to build the business process, bullet-proof state management, and a quick way to implement all the automation and integration pieces.