Event-Driven Business Architecture (EVENT34)

The ‘Event-Driven Business Architecture’ is the idea of a software architecture that centers business applications on events and processes. In the following, I will explain its core concepts and describe how building business applications around events can enhance architectural flexibility.

What is an Event?

When we talk about ‘Event-Driven Business Architecture’, one of the first questions that naturally arises is: What exactly is an event? Let’s examine the characteristics of an event in detail.

First of all, an event is something that happens, either unexpectedly or as a planned occurrence. Events are omnipresent in our business world – from a new customer request to the sending of an invoice or the receipt of a payment. When these events occur regularly and follow a defined sequence, we speak of a process. For example, the three events mentioned could be part of an order process.

From a technical perspective, an event has several properties that describe its nature. The most fundamental property is the timestamp indicating when the event occurred. Another crucial property is the actor who initiated the event – this could be a customer submitting a new request, an employee creating an invoice, or a technical system such as a transport system’s control unit sending tracking information. And last but not least, we have the kind of the event which describes the business context it occurred in. This typically relates to what we call a ‘business process’ and defines the formal framework the event is bound to.

Continue reading “Event-Driven Business Architecture (EVENT34)”

Business Intelligence Built on Metrics – Part I.

Business Intelligence (BI) is the process of collecting, analyzing, and presenting business data to help organizations make better decisions. It transforms data into meaningful insights enabling companies to understand their performance, market trends, and competitive position. In this blog post I will explain how you can use BI together with a Business Process Management System.

Most BI tools follow the approach to transform raw data from a database centric business application into aggregated data for analysis. Typically those tools are built on SQL based databases which makes it easy to group data or compute totals across different queries. Of course, this approach requires a well-designed data structure and a deep understanding of the technical relationships between different information domains. Thus, it is usually a collaboration between business analysts and developers to collect this kind of data.

But what if you have a business process management system instead of a ERP software? In such a software system, there are floating and volatile workflows that generate the data to be analyzed. For example, a “complaint management” business process is more likely to look at timings, processing periods, and costs over time. The analysis of such processes in a BI tool is often very difficult to realize with conventional SQL queries. So the question is: what could be the right architecture to process this type of data in a BI platform?

Continue reading “Business Intelligence Built on Metrics – Part I.”

Imixs-Workflow: A Business-Centric Alternative to Camunda

In today’s rapidly evolving business landscape, organizations need workflow solutions that can adapt quickly to changing requirements while maintaining operational efficiency. While there are several workflow engines available in the market, Imixs-Workflow stands out as a compelling choice, particularly for organizations seeking to put process control directly in the hands of business users. Why can Imixs-Workflow be an alternative to Camunda?

As organizations evaluate workflow engines for their process automation needs, Camunda has established itself as a powerful solution, particularly for development teams implementing complex program logic through BPMN models. However, for organizations seeking a more business-oriented approach, Imixs-Workflow emerges as a compelling alternative that addresses different yet equally important needs in the process automation landscape.

Continue reading “Imixs-Workflow: A Business-Centric Alternative to Camunda”

Why You Shouldn’t Compare Camunda to Imixs Workflow

Today I was asked from customers how to compare Camunda with the Imixs-Workflow engine. This question often comes up when projects try to evaluate and compare workflow engines. My short answer to this question is: You shouldn’t compare these two engines. In the following, I will try to explain this in more detail.

First of all, I would like to make it clear that this is not an evaluation of the two engines, but only to show the different criteria that come into question for an evaluation. So first, let’s look at the similarities between Camunda and Imixs.

Both engines are open source frameworks. Both are implemented in Java and both support the BPMN 2.0 standard. But these are already the only similarities that both frameworks have in common. You could now argue that Camunda is essentially based on Spring and Imixs-Workflow is a Jakarta EE implementation. One could also highlight the different modeling concepts that both frameworks represent (I have talked about this some times ago). But all these are details of architecture and implementation in my opinion. The main difference is quite another one.

Continue reading “Why You Shouldn’t Compare Camunda to Imixs Workflow”

Build your Business App with BPMN 2.0

In this short tutorial I will show how to build a business application with the Business Process Modelling Notation – BPMN. This approach differs from the usual data-centric approach as we focus on process management instead of data processing.

Data Processing vs. Process Management

When we follow the classic approach building a Data-Centric Business Application, we usually first design a data schema. The data schema defines what kind of data can be managed. The application allows us to create new data sets, edit existing data and of course search for data.

In a Process-Centric Business Application we instead first try to answer the question how data should be processed to give each actor the best access to information to reach a specific business goal. And this kind of question becomes more and more important in our today’s rapidly evolving business landscape. BPMN offers the perfect approach to model a workflow with its business goals from the beginning to the end. BPMN models can be created with various tools like for example the Open Source BPMN designer Open-BPMN.

The big advantage of BPMN is that it does not only give all stake holders a clear understanding about the process, a BPMN 2.0 Model can also be executed by a suitable process engine. This “low-code” or “model-driven” approach leads to a much more flexible way to implement business applications. Of course, data still plays an important role and workflow engines allow us to manage business data in various ways. So let’s see how this works…

Continue reading “Build your Business App with BPMN 2.0”

Data Processing vs. Process Management?

In today’s data-driven business landscape, managing data effectively is crucial for achieving organizational goals. While data processing systems play a vital role in collecting and organizing data, it is often overlooked that data should not be managed solely for its own sake. True value lies in understanding how data can be leveraged to achieve business objectives, which is where the concept of process management comes into play.

Today we live in a world where data is everywhere and every enterprise knows about the value of data. But how do we handle data? How do we create, collect analyze it? This is the area of data processing software. And we all use databases, spread sheets and data management systems to manage all kind of data. Many software systems are build around specific data domains and we use this software to create and maintain the data.

But in this context, however, it is often overlooked that data should not be managed for its own sake. The reason why we need data in companies is that we want to achieve certain business goals. And in this context, we come to the question of how corporate goals can be achieved at all? This is the area of process management.

So what’s the difference between data processing and processes management?

Continue reading “Data Processing vs. Process Management?”

How to Run Containers with GPU Support

In this short tutorial I will explain how to run a Docker container with GPU support. This becomes important if you want to run AI applications such as the Imixs-AI project within a local Docker environment or in a Kubernetes Cluster. This short tutorial is based on Debian 12 (Bookworm) and the usage of a NVIDA graphic card. I assume that you already have installed Debian and the Docker engine. Read the official install guide about how to install the Docker engine on Debian.

Continue reading “How to Run Containers with GPU Support”

BPMN 2.0 and Jakarta EE – A Powerful Alliance

A BPMN Workflow engine based on the Jakarta EE Framework forms a powerful and effective combination for developing enterprise applications with a focus on business process management. Both, Jakarta EE and BPMN 2.0 are standardized and widely supported. The scalability of Jakarta EE provides a secure foundation for building enterprise applications with robust business process management capabilities. This enables developers to leverage the strengths of both technologies to create efficient, interoperable, and maintainable BPM solutions. In the following I will explain the aspects in more detail.

Continue reading “BPMN 2.0 and Jakarta EE – A Powerful Alliance”

Compare Workflow Engines

The term “workflow engine” is not clearly defined in software development and therefore we would like to give a brief overview of different aspects and types of workflow engines in the following blog post.

If you take a look at the Github page awesome-workflow-engines, you will find an impressive number of open source workflow engines. But not all of these engines solve the same problem. The idea behind the term ‘workflow’ can be very different and so the functionality of a workflow engine. In general a workflow is a series of tasks or activities that are required to complete a specific process. Such a process can involve multiple people, teams, microservices or even other IT systems. Thus, it becomes clear that when comparing Workflow Engines, various aspects must be taken into account.

Continue reading “Compare Workflow Engines”