New License Model: Eclipse Public License – v 2.0

Finally we switched the Imixs Workflow license model from GPL 2.0 to the modern Eclipse Public License – v 2.0

The Imixs Workflow proejct is now licensed under the EPL-2.0. The Eclipse Public License is a modern license which reflects the norms and expectations of an industry that has changed a lot in the last years.

As a weak copyleft license, the EPL is a middle ground of sorts between permissive options (like the MIT License or Apache License 2.0) and strong copyleft licenses (like GPL v2 and GPL v3.) A core requirement of the EPL – one that’s not part of permissive licenses – is that derivative works of EPL-licensed code must also be licensed under the EPL. As such, anyone who distributes a program that constitutes such a derivative work must also make their source code available. Find more details here.

In addition the new Imixs Workflow license model includes also a secondary license for GPL-2.0+ compatibility. In this way you can still license your work under GPL if you like.

Find more details:

Imixs Workflow – Where We Stand Today and Where We’re Headed Next

As the business process management landscape continues to evolve at an unprecedented pace, organizations worldwide are seeking workflow solutions that can adapt to changing requirements while maintaining operational excellence. Today, we’re excited to share a comprehensive technical overview of Imixs-Workflow and our ambitious vision for the future of human-centric business process management.

The Foundation: Where We Stand Today

Imixs-Workflow has established itself as a powerful open-source BPMN 2.0 workflow engine, combining low-code simplicity with enterprise-grade capabilities. Built on the robust Jakarta EE platform, the Imixs-Workflow engine is specifically designed for human-centric business processes that require flexibility, security, and scalability.

Continue reading “Imixs Workflow – Where We Stand Today and Where We’re Headed Next”

Imixs-Security 3.0.0: Advanced OpenID Connect Library for Jakarta EE 10

We’re excited to announce our latest release of Imixs-Security OIDC, a powerful new OpenID Connect (OIDC) library for Jakarta EE 10 applications. This new release represents a significant milestone in our open source security toolkit, bringing enterprise-grade authentication capabilities to Jakarta EE applications.

Why Another OpenID Connect Library?

While Jakarta EE 10 introduced native OpenID Connect support through Eclipse Soteria 3.0, this default implementation shows some gaps that needed addressing for real-world enterprise applications. The primary limitation of the existing solution is their focus solely on browser-based user flows, leaving a significant gap for API authentication scenarios.

Imixs-Security-OIDC brings a new flexible solution providing comprehensive support for both – browser based OpenID Connect login and Bearer Token authentication. The later is a crucial requirement for modern applications that need to integrate with external systems via REST APIs.

Continue reading “Imixs-Security 3.0.0: Advanced OpenID Connect Library for Jakarta EE 10”

Understanding Service Tasks in Imixs-Workflow

A common question from users transitioning from task-centric engines (like Camunda) to Imixs-Workflow, is whether Imixs-Workflow supports Service Tasks—a common BPMN element used in workflow engines like Camunda. Let’s see how this works in Imixs-Workflow

First of all – you can add a service Task into your model. But this will not execute any code.

The answer to this lies in understanding Imixs’s event-driven architecture. Unlike BPMN engines that rely on embedded code in Service Tasks, Imixs executes custom logic through events by two core mechanisms:

1. Plugins: Reusable Workflow Logic

Plugins are Java classes triggered at the processing phases of the workflow lifecycle. They act like “global interceptors” for business logic.

Key Traits:

  • Extend org.imixs.workflow.Plugin or AbstractPlugin.
  • Running in each processing cycle
  • Modify workflow documents during processing.

A Plugin can be added into the Model Workflow definition and will be executed automatically in each processing cycle.

Example: Automatically calculate a discount in an order approval workflow:

(See Plugin API Docs for details.)

2. Adapters: Event-Driven Actions

Adapters (CDI observers) react to workflow events, similar to microservices listening to Kafka topics. They’re ideal for side effects (e.g., sending emails, logging).

Key Traits:

  • Support CDI / EJB / Transactional
  • Running on a specific Event
  • Decoupled from the core workflow (run asynchronously if needed).

Example:

Why This Approach?

  • Separation of Concerns: Business logic lives outside BPMN files.
  • Flexibility: Plugins/Adapters can be shared, tested, and versioned independently.
  • Scalability: Events integrate with Java EE/CDI, Kubernetes, or serverless.

Migration Tip for Camunda Users

Instead of embedding code in a Service Task:

  1. For document transformations: Use a Plugin.
  2. For side effects (APIs, notifications): Use an Adapter.

Explore Further:

Questions? Discuss in the Imixs Forum.

GraalVM 24.1.2, Wildfly 29.0.1 and Imixs-Workflow 6.2

With the latest version of Imixs-Workflow (6.2.0) we upgraded to GraalVM 24.1.2 and Widlfly 29.0.1-Final-JDK-17.

Wildfly 29 requires GraalVM in version 24.1, as the polyglot version ‘24.1.2’ is no longer compatible to older Truffle version ‘23.1.1’. Wildfly 29 comes also with a lot of bugfixes and minor improvements. In this way Wildfly has now become a bit stricter in dealing with some older packages from the JDK or Java SE version. To be able to execute Scripts with the GraalVM polyglot language engine you need to enable the global modules feature. Just add the module ‘jdk.unsupported’ to your ee subsystem config in standalone.xml:


This allows you to execute Imixs-Workflow business rules in Wildfly 29.0.1. Find the full story here.

Open-BPMN Version 2.3: New Features and Improvements for Easier BPMN Modeling

We’re thrilled to announce today the release of the latest version of Open-BPMN! With this update, we’ve introduced several exciting new features and improvements that make modeling BPMN diagrams even easier and more efficient.

What’s New in This Release?

  1. Built on GLSP 2.3:
    Open-BPMN now runs on the latest version of the Graphical Language Server Platform (GLSP) 2.3 framework. This upgrade brings better performance, stability, and a more reliable modeling experience.
  2. New Data Objects:
    We’ve added new Data Objects to the toolkit, allowing you to create even more detailed and expressive BPMN diagrams. This enhancement opens up new possibilities for modeling complex business processes.
  3. Improved Routing:
    The routing of elements in Open-BPMN has been optimized. Connecting elements is now more intuitive and faster, making your workflow smoother than ever.
  4. VS Code Extension Update (Version 1.1.14):
    Alongside the core release, we’ve also updated our VS Code Extension to version 1.1.14. This update allows you to create and edit BPMN models directly in Visual Studio Code and Microsoft Visual Studio Code – perfect for those who want to stay in their development environment.
  5. Compatibility with Imixs-Workflow:
    The new version of Open-BPMN is fully compatible with the open-source BPMN engine Imixs-Workflow. This ensures a seamless transition from modeling to executing your processes.

Why Does This Matter?

With these updates, we continue to solidify Open-BPMN as one of the leading open-source solutions for BPMN modeling. Our goal is to provide you with a tool that is not only powerful but also easy to use – and all of this for free and open-source.

Try It Out Now!

The new version of Open-BPMN and the updated VS Code Extension are now available for download. Head over to our website to get started: https://www.open-bpmn.org.

We’re excited to hear your feedback and learn how you’re using the new features. Share your experiences with us – because Open-BPMN is all about the community!

Your Open-BPMN Team

Business Intelligence Built on Metrics – Part II.

In Part I. of this series, we explored how metrics can bridge the gap between dynamic business processes (BPM) and business intelligence (BI). Now, in Part II, we dive deeper into the practical implementation: How to implement a Metric service, how to select the right metrics, integrate them into your BI tools, and ensure they deliver actionable insights?

The Technical Stack

Our solution combines several powerful open source technologies, each chosen for its unique strengths in building a scalable and efficient Business Intelligence system.

  • Eclipse Microprofile Metrics: Serving as the application part translating business data into metrics. This framework allows you to implement metrics based on the widely used Prometheus metric format in an easy way.
  • Prometheus: As our time-series database, Prometheus excels at storing and querying large volumes of metric data in real-time, making it ideal for monitoring and analysis.
  • Grafana: For visualization, Grafana transforms raw data into intuitive dashboards, enabling teams to quickly interpret trends and make data-driven decisions.

In the following sections, we’ll dive deeper into how each piece of this stack works and how you can leverage it to build your own metrics-driven BI solution.

These components also seamlessly integrated into Imixs-Office-Workflow, an open source business process management platform.

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

E-Invoice – Pure Java Library

With our new project Imixs E-Invoice we provide an easy to use pure java library to read and write e-invoice documents in XML.

Imixs E-Invoice stands out for its independence from external dependencies. In contrast to libraries like the Mustang project Imixs E-Invoice does not have any external dependencies. The library seamlessly integrates into modern Java projects and makes it a good choice for custom projects and adapters.

Imixs E-Invoice supports the major European e-invoice standards factur-x (CII) and UBL. To get started just add the Maven dependency:

Now you can read any e-invoice xml document and translate it into a EInvocieModel

You have full access to the XML tree behind by using standard Java xml dom objects:

Write a E-Invoice XML Document

You can also create a e-invoice document by simply using XML templates. To create a new e-invoice document you can work with any valid e-invoice template as an XML file. The template is the base for the core model that can be updated by the library. See the following example code:

Join the Project

We maintain Imixs e-invoice as an open source project on GitHub and welcome you to join our community. Whether you want to fix bugs, add new features, or improve documentation – your contributions are valuable to us. You can start by forking the repository, creating issues for bug reports or feature requests, or submitting pull requests with your improvements. We actively review contributions and provides feedback to ensure high code quality.

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)”