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”

Why AWS & Azure Are Not Kubernetes

When you hear about Kubernetes for the first time these days, you might get the impression that Kubernetes has a lot to do with AWS or Azure. If you read blogs or tutorials about Kubernetes or even if you join conferences, AWS and Azure is everywhere. It seems like a stupid idea not to believe that Kubernetes is based on these Internet platforms and can exist outside them.

But Kubernetes is far away from being a product or internet service that is only offered by Amazon or Microsoft. Rather, Kubernetes is an open source platform which is supported and developed by the Linux Foundation. Many people are working on the concepts for this open platform on a daily basis. And the goal of Kubernetes is to provide an open and powerful platform for operating container-based applications and Microservices.

It was never a walk in the park to setup and operate a stable and highly available cloud environment consisting of many servers. With Kubernetes companies and organizations should be enabled to run a server infrastructure for container-based applications by there own. Google has published his own experiences in this area and handed it over to the Linux Foundation in order to share that knowledge with others. And it was never the goal to make a product or put organizations in a dependent situation. On the other hand, it is a big business for companies like Microsoft and Amazon to offer their services based on the concepts of Kubernetes. Binding customers to their platforms is the new way of licencing. And they do a lot of marketing to succeed.

Build Your Own Cluster

Believe it or not, you can set up your own Kubernetes cluster and run it successfully in just a few hours. The concepts of Kubernetes provide many solutions for the problems that normally arise when operating large server environments. The result will be a stable and sustainable cloud infrastructure that you can control yourself.

Of course, Kubernetes is a complex system of many different building blocks. It takes time to get used to it. But today there are also a lot of concepts available to achieve success quickly. So don’t hesitate and take control of your personal cloud platform.

If you like, you can take a look at our open source project ‘Imixs-Cloud‘, which shows a simple and stable approach for the operation of a Kubernetes cluster.

Stream Analytics with Imixs-Workflow

The real-time processing of a continuous stream of business data and events is becoming increasingly important in modern IT architectures. This type of architecture, in which events are building the centre of data processing, is also known as a Reactive Streaming Architecture. In the following we will show how to solve some of the related challenges with the help of a workflow technology.

Let’s take a closer look at this type of architecture first. Basically, the event-based processing of data is not new and has actually been developed for decades in various specialized domains such as the financial sector. But since the last few years, new standards for processing data streams have emerged. Technologies like Apache Kafka, Storm, Flink or Spark are gaining popularity and pushing a new hype.

From industrial production systems to multiplayer computer games, so-called Streaming Architectures are used more and more frequently in order to be able to process big data in real time. Streaming architectures have developed into a central architectural element of modern technology companies. In many companies real-time streams have become the core system in their architecture.

The goal is to be able to integrate new system solutions more quickly and to connect any kind of data streams. The streaming architecture is not only found at technology giants such as Ebay, Netflix or Amazon, but today in every modern technology company that is working on the digitization of its business processes. So what are the main challenges in building such an architecture?

Continue reading “Stream Analytics with Imixs-Workflow”

Imixs-Cloud – Running SQL in Kubernetes

For most self managed Kubernetes environments the SQL database is one of the most important infrastructure parts. Typically SQL database servers are not designed to run on distributed nodes in an environment like Kubernetes. One solution is to run a single SQL database in a Kubernetes POD with a distributed filesystem like Longhorn or Ceph. This works well for example with PostgreSQL in most situations. Of course this can have some performance impacts and requires fast SSDs. Another solution is to run a distributed SQL Database like Cockroach. With the latest version of the Imixs-Cloud project we now offer a smart solution to run a SQL Database cluster within a self managed Kubernetes cluster.

Note: CockroachDB does not support the isolation level of transactions required for complex business logic. For that reason the Imixs-Workflow project does NOT recommend the usage of CockroachDB. See also the discussion here.

CockroachDB

CockroachDB is a distributed SQL database with a build in replication mechanism. This means that the data is replicated over several nodes in a database cluster. This increases the scalability and resilience in the case that a single node fails. With its Automated-Repair feature the database also detects data inconsistency and automatically fixes faulty data on disks. The project is Open Source and hosted on Github.

CockroachDB supports a lower level of ACID transactions. This means guaranteed atomicity, isolation, consistency, and durability of data is not the same quality as in a PostgreSQL database . However CockroachDB can be used in combination with Jakarta EE and JPA. Supporting the PostgreSQL wire protocol, CockroachDB can be used with the standard PostgresSQL JDBC driver.

See how CockroachDB can be used within the Imixs-Cloud project .

You can find a install guide here.

Jakarta EE and Wildfly Running on Kubernetes

In this blog I will explain how to setup and customize Wildfly to run your Jakarta EE application on Kubernetes. We use this setup in our own Open Source project to run modern Jakarata EE applications on Kubernetes. You can find this project on Github.

Wildfly is Jakarta EE 8 compatible and includes the latest Eclipse MicroProfile in version 3.3. It provides a modern application framework out of the box to simplify the development of web applications and microservices. All runtime services minimize the heap allocation and applications are starting very fast with a minimum of memory.

Continue reading “Jakarta EE and Wildfly Running on Kubernetes”

Imixs-Workflow 5.2 Supports Asynchronous Events

With the new release v5.2.0, the open source workflow engine Imixs-Workflow now supports the asynchronous execution of BPMN events.

This feature is a big step forward especially in a microservice architecture. The new so called AsyncEvents make it much more easier to decouple a Rest API call from the processing life cycle of the workflow engine. In this way the request-response pattern shows better performance and allows a very clear design of complex business processes.

The AsyncEvents were already part of the Imixs-Microservice project in a pre-release and become now a core feature of the Imixs-Workflow engine. Especially in more complex architectures, the use of the so-called SAGA Pattern is an important building block. With asynchronous events Imixs-Workflow is now supporting this design pattern as a core feature. Read also our blog about building powerful microservice solutions with the SAGA Pattern.