BPMN Workflow Engine

Heloisa Carbone
4 min readJul 2, 2020

--

Have you ever struggled with communication between business and development teams? Do they always have the same level of understanding in the process?

https://camunda.com/products/bpmn-engine/

For a long time, people from different contexts had a huge problem of communication. The business and the development team have different ways of talking about the same topics, what in most cases can cause a misunderstanding of what should be done in a project.

As you may had seen during your life as an I.T. professional, the following illustration summarises exactly what I was trying to explain:

Image from codeforcashblog

Furthermore, to solve this undeniable problem people around the world started to think about a way of communication that is worldwide known and used in all the levels and contexts of the market. That's when we started to use BPMN to create our ideas of a project.

BPMN — Business Process Model and Notation

BPMN is a standard graphical notation that is used to represent the businesses flows of a project. And is well known around the world, it has many symbols that can represent steps that must be followed in a flow.

As the own bpmn.org states:

A standard Business Process Model and Notation (BPMN) will provide businesses with the capability of understanding their internal business procedures in a graphical notation and will give organizations the ability to communicate these procedures in a standard manner.

Following, we have an example of a BPMN workflow to better understand, the usage of the BPMN.

BPMN representing a purchase process flow.

This image represents a simple BPMN of a purchase process flow. As we can see, we have a start event that will initiate the flow, the first action will be a User task, in which the user will identify the payment method that wishes to use, after that, we have a conditional gateway depending on the response of the user, that can perform a service task related to the option. Finally, we will have a manual task to prepare a package for the customer and the flow will be over.

As all integrants of the teams are able to understand and edit the BPMN with the same clarity of understanding, it was thought that would be terrific if we could execute these models in services. Therefore, the BPMN engines were created.

BPMN Workflow Engines

A BPMN Workflow Engine is a framework, that can be used to interpret and execute a graphical model, bringing clarity and accessibility to the process that is being performed by an action.

There are some BPMN engines in the market today, such as Bonita BPM, Activiti, ActiveVos, Camunda BPM, among others. All of them are Java-based frameworks, so it works really well with any JVM language or framework, for instance SpringBoot, Clojure.

Furthermore, there are no right and wrong about what can be considered a flow to the engine. There are projects that use for punctual decision makers, for instance, the decision of a payment method for a purchase or a vacation scheduling process of a company. And there are others that create the full organisation process as a single flow, for instance a model that contains vacation scheduling, payment flow, benefits process and other HR actions.

Moreover, there are companies that uses the BPMN workflow to remove responsibility and business rules to the frontend side, using the model to set the pages flow of a website, in which, the backend becomes totally responsible to let the frontend know what should be rendered in each moment. Not only, the BPMN is able to know the web pages flow, but it also can have the business rules for each step, and also create the execution steps that must be performed between each step.

A practical example would be the login to a website:

Login flow

As we can see in the image, there is an action of 'start' login, that will initiate the flow, and when it happens, the first step will inform to this action the identifier of the page that should be rendered to Login Page. And after that, we will wait till the user perform the information submit to continue in the flow, when it does a service task to validate login information will be performed and it will be decided if the user is valid, in which, if positive the page identifier to user's perfil page is sent, otherwise, the data that was wrong is processed and retrieved with the identifier to the login page again.

There are many other approaches that can be thought to be used with a BPMN Workflow engine, anything that can be imagined as a sequence of steps and decisions to make can be transformed into a model.

Therefore, there are so many perks of using this fantastic tool, that not only facilitate the communication between teams, but also improve the quality of architecture of the software, the security of information, the centralised business rules and clarity of sequence of steps.

--

--

No responses yet