With the next upcoming version of Imixs-Worklfow 5.1.10 we will introduce the new Multi-Model Support. With this function, a long-running business process can easily be distributed into separate model files without having to split up a running process instance or create a new sub-process. This will make modeling much easier and clearer.
In difference to the the already existing feature of the Split Events, the model version can be changed within a running process instance by simply adding a link-event:
The outgoing event describes the new model version in the workflow result definition:
The Imixs-Workflow engine will execute the new event immediately within the new model and automatically assigns the already running process instance. The consistency of the process will be guarantied by the Imixs-Workflow Kernel.
This modeling approach is particularly interesting for long-running, complex business processes with multi-stage approval procedures because it significantly increases the maintainability and overview in such models.
The Imixs-Workflow engine has a build-in metric service which is based on lates vdrsion of Eclipse Microprofile 3.2. This metric service can be used to monitor the Imixs-Workflow engine and its running processes. The Imixs Metric Service provides fine-grained metrics to monitor individual business processes or even individual process steps within a specific workflow.
The Data format is based on the common Prometheus format and can be analyzed in real-time with different kind of Tools.
To setup the imixs-metrics you just need to enable the metric service by a environment variable:
The Imixs-Workflow engine will start automatically collecting all relevant metrics during document updates or the processing life-cycle of a custom business process.
The Metrics are available on the metrics api endpoint of the application server. For Wildfly this endpoint is for example:
Next you can start a Prometheus Server to collect the metrics by using the following prometheus.yml file:
scrape_interval: 15s # By default, scrape targets every 15 seconds.
# Attach these labels to any time series or alerts when communicating with
# external systems (federation, remote storage, Alertmanager).
# Imixs-Microservice - payara metrics
- job_name: 'imixs'
- targets: ['imixs-workflow:8080']
# Imixs-Microservice - wildfyl metrics
#- job_name: 'imixs'
# scrape_interval: 5s
# metrics_path: /metrics
# - targets: ['imixs-workflow:9990']
Note: that for wildfly the metrics_path and target port differs from the payara config!
This will collect metrics from the service endpoint ‘http://imixs-workflow:8080/’. Prometheus will scrape the metrics every 15 seconds and stores the result into its own database.
From the Prometheus Dashboard you can test the data within your web browser:
Monitoring Metrics with Grafana
To monitor you workflow you can easily connect your Prometheus server with a Grafana Instance. This allows you to visualize your metrics in an individual and more detailed dashboard.
There are a huge amount of functions available in Grafana to analyze and monitor data. You can also activate individual alerts to notify your process owner about the load of your business processes.
As always, the Imixs-Admin Client also shows insights how to build modern, lean web interfaces based on the Imixs Rest API. The new version is realized as a Single-Page-Application using the Imixs-Script library. The self-contained microservice can connect to any Imixs-Workflow instance via Rest. The backend also integrates the latest version of the Imixs-Melman sub project.
The project is available on Github. Imixs-Admin 5.1 will be evolved with new features in the upcoming releases.
We proudly announce out latest release of Imixs-Workflow. Version 5.1 is a big step forward on the road to greater flexibility and support for a modern microservice architecture.
Imixs-Workflow 5.1 introduce a new indexing concept that allows to provide different implementations for a full-text-search and structured-search. Now users can switch between the Apache Lucene Core search engine or the Apache Solr Search engine. Solr is a highly reliable, scalable and fault tolerant search engine. Solr supports distributed indexing, replication and load-balancing. Especially for a high scalable microservice architecture this search engine is the best choice.
Also the support for Eclipse Microprofile is now completed. With Eclipse Microprofile microservices and business applications can be developed faster and more resilient. Build on Eclipse Microprofile and Jakarta EE now Imixs-Workflow can be deployed on all modern application servers and is tested with Payara, Wildfly, OpenLiberty, TomEE.
Version 5.1. is already included in the latest version of Imixs-Microservice which provides a lightweight architecture for business transaction in a microservice environment.
The BPMN Rule Engine uses Conditional Events to evaluate a business rule. This is a powerful mechanism to describe rules in a BPMN model and evaluate a given workitem.
The BPMN Rule Engine provides an easy way to describe also complex business rules based on a visual model. The rules are evaluated as a chain of conditional events. The engine evaluates the data of a given workitem.
To initialize a BPMN Rule Engine a Imixs BPMN Model instance need to be loaded first.
The model instance can either be taken from a running instance of the Imixs-Workflow engine or loaded on demand from the file system:
// load BPMN model from input stream
Model model = BPMNParser.parseModel(inputStream, "UTF-8");
The workitem can contain any kind of data to be evaluated by the business rules. Internally the Imixs BPMN Rule Engine is based on the Core-RuleEngine which supports various script languages to describe a rule.
Today we released version 5.0.2 of the Open Source Workflow Engine Imixs-Workflow.
The new release includes – beside the general new support of Eclipse Microprofile – some important new features. The main feature of this release is a new implementation of Imixs Adapter API. This API supports now two kinds of adapter interfaces.
The SignalAdapter can be used to implement a fine grained control of the event processing life cycle.
The GenericAdapter interface provides a model independent extension point to implement generic API features.
One of the first implementations is the new AccessAdapter class. This adapter controls the ACL defined by the Imixs-BPMN Model definition. This adapter can also be a good starting point of custom generic adapters.
Together with the Imixs Plugin API the Adapter API now provides developers with a strong and flexible extension mechanism to implement all kind of human-centric and microservice based workflow applications.
With the upcomming version 5.0.0 the Imixs-Workflow engine is integrated into the Eclipse Micoroprofile API.
The Enterprise Java technology has evolved with the industry for nearly two decades to support distributed application architectures based on RMI/IIOP, Web Services, and REST. The MicroProfile is the next step in that evolution. Since Imixs based on Java Enterprise technology stack, it is consistently to expand the technology to the new standard. As a developer this will bring you more features and a much smarter way to run the Imixs-Worklfow engine within a microservice architecture.
The Version 5.0.0 will provide the following APIs:
Metrics – This allows you to monitor Imixs-Workflow with Tools like Prometheus or Grafana
Health Check – The Health Check API can be used to probe the state of an Imixs-Worklfow instance from another machine (i.e. a kubernetes service controller)
Config API – Configuration data can now come from different locations
We will provide soon more documentation and examples on how you can run Imixs-Workflow in a Microservice Infrastructure. If you have questions please joint our community!
The hexagonal architecture is a design pattern introduced by Dr. Alistair Cockburn. A hexagon is a closed body and according to his pattern, an application is assumed to be a hexagon. Whatever is relevant to the business logic of an application gets to reside inside the hexagon and the rest is arranged outside. In this way, the business logic can be easily tested without worrying too much about external factors. So and this matches perfectly into the world of microservices.
Microservices become the new disruptive technology for software development in it’s traditional way. It is the architectural style which brings up a new way to build software systems. The Microservice Architecture evolves very fast and in deed has a lot of success.
But there are also some disadvantages in Microservices. One of the critical parts is the rising complexity within a microservice architecture. It is a problem which is often overlooked in the beginning when all this euphoria lies within a greenfield project. And the problem is often denied for a long time by its advocates. But why does this happen?