Workflow management¶
Context and Problem Statement¶
There are a number of full fledged products, bpm suites, saas offerings and libraries (embedded usage) are available regarding process modeling and workflows.
Widely used trio for process modeling is being BPMN, CMMN and DMN. They are often addressed as Triple Crown of Process Improvement Standards.
In simple words, these standards can be termed as:
-
BPMN — is about the processing
-
CMMN — is about managing
-
DMN — is about deciding
Mixing up BPM and workflow is rather frequent, given ***the two have much in common, but they also have some differences**.
What’s workflow?
Workflow management softwares focuses on giving you options to organize your workflows. It can include the ability to create conditional steps, link with other software, or make parallel paths for an item to follow.
What’s BPM
BPM software includes robust workflow features, but also helps you organize common datasets, give advanced reporting, and monitor the health of all of your processes from a common dashboard. BPM software will give a much broader picture of all the processes in your organization.
BPM vs. Workflow Distinction
When a plane lands, it has to follow a certain workflow that bounces between the pilot, co-pilot, tower, flight attendants, and ground crew. Everything has to happen in a certain sequence to ensure a successful landing. This is a great example of a structured workflow
.
However, at an airport, this workflow happens hundreds of times every day, and there are multiple other workflows going on, like takeoff, refueling, and maintenance. In addition, the tower needs to collect data on all landings, how long they take, how they compare with previous days, ideas for improvement, and many other things.
If a workflow is how a single plane lands, BPM is managing the entire operations of an airport.
Decision Drivers¶
- open source and oem friendly license
- embeddable
- technical support available
- library that allows users to write long and short running persistent workflows
Considered Options¶
- Workflow Core - Lightweight workflow engine for .NET Standard
- WorkflowEngine.NET - WorkflowEngine.NET - component that adds workflow in your application. It can be fully integrated into your application, or be in the form of a specific service (such as a web service)
- Elsa Workflows - A .NET Standard 2.0 Workflows Library.
- Camunda - BPMN-based workflow engine that can be embedded as java library (e.g. Spring Boot) or used standalone, including a graphical modeler and operations tooling.
- Kogito - Cloud-native business automation technology. Embeddable to produce JVM or GraalVM artifacts or interacted through Kafka & REST APIs
- Flowable - The Flowable project provides a core set of open source business process engines that are compact and highly efficient. They provide a workflow and Business Process Management (BPM) platform for developers, system admins and business users.
- Activiti - Activiti is a leading lightweight, java-centric open-source BPMN engine supporting real-world process automation needs.
- Conductor - Netflix’s Conductor is a microservices orchestration platform that enables developers to build scalable, durable application flows. Conductor workflows are language and framework agnostic. Conductor is built by Netflix, Orkes and team of open source contributors.
Decision Outcome¶
Chosen option: "Elsa Workflows" because,
- The workflow engine library that we can embed into our existing modules is also limited in .net core.
- The exsisting requirements show that we don't need process engines.
Consequences¶
- Elsa does not currently support BPMN at version 2.0 (https://github.com/elsa-workflows/elsa-core#roadmap)
Pros and Cons of the Options¶
Elsa v2.0¶
Positive:
- elsa workflows is oem friendly, runs in production successfully at several companies that already using
- elsa workflows
- elsa workflows can be visually designed using the Elsa Designer, a reusable & extensible HTML5 web component built with StencilJS.
- elsa workflows can capable to utilize
workflow as code
andworkflow as dsl
(flows can be import via json file) - possible to build document approval process / human approval
Negative:
- elsa workflows is not BPMN solution
- not optimized for data processing, etl or data analytic tasks
- documentation is not super cool