Skip to main content
Redhat Developers  Logo
  • Products

    Featured

    • Red Hat Enterprise Linux
      Red Hat Enterprise Linux Icon
    • Red Hat OpenShift AI
      Red Hat OpenShift AI
    • Red Hat Enterprise Linux AI
      Linux icon inside of a brain
    • Image mode for Red Hat Enterprise Linux
      RHEL image mode
    • Red Hat OpenShift
      Openshift icon
    • Red Hat Ansible Automation Platform
      Ansible icon
    • Red Hat Developer Hub
      Developer Hub
    • View All Red Hat Products
    • Linux

      • Red Hat Enterprise Linux
      • Image mode for Red Hat Enterprise Linux
      • Red Hat Universal Base Images (UBI)
    • Java runtimes & frameworks

      • JBoss Enterprise Application Platform
      • Red Hat build of OpenJDK
    • Kubernetes

      • Red Hat OpenShift
      • Microsoft Azure Red Hat OpenShift
      • Red Hat OpenShift Virtualization
      • Red Hat OpenShift Lightspeed
    • Integration & App Connectivity

      • Red Hat Build of Apache Camel
      • Red Hat Service Interconnect
      • Red Hat Connectivity Link
    • AI/ML

      • Red Hat OpenShift AI
      • Red Hat Enterprise Linux AI
    • Automation

      • Red Hat Ansible Automation Platform
      • Red Hat Ansible Lightspeed
    • Developer tools

      • Red Hat Trusted Software Supply Chain
      • Podman Desktop
      • Red Hat OpenShift Dev Spaces
    • Developer Sandbox

      Developer Sandbox
      Try Red Hat products and technologies without setup or configuration fees for 30 days with this shared Openshift and Kubernetes cluster.
    • Try at no cost
  • Technologies

    Featured

    • AI/ML
      AI/ML Icon
    • Linux
      Linux Icon
    • Kubernetes
      Cloud icon
    • Automation
      Automation Icon showing arrows moving in a circle around a gear
    • View All Technologies
    • Programming Languages & Frameworks

      • Java
      • Python
      • JavaScript
    • System Design & Architecture

      • Red Hat architecture and design patterns
      • Microservices
      • Event-Driven Architecture
      • Databases
    • Developer Productivity

      • Developer productivity
      • Developer Tools
      • GitOps
    • Secure Development & Architectures

      • Security
      • Secure coding
    • Platform Engineering

      • DevOps
      • DevSecOps
      • Ansible automation for applications and services
    • Automated Data Processing

      • AI/ML
      • Data Science
      • Apache Kafka on Kubernetes
      • View All Technologies
    • Start exploring in the Developer Sandbox for free

      sandbox graphic
      Try Red Hat's products and technologies without setup or configuration.
    • Try at no cost
  • Learn

    Featured

    • Kubernetes & Cloud Native
      Openshift icon
    • Linux
      Rhel icon
    • Automation
      Ansible cloud icon
    • Java
      Java icon
    • AI/ML
      AI/ML Icon
    • View All Learning Resources

    E-Books

    • GitOps Cookbook
    • Podman in Action
    • Kubernetes Operators
    • The Path to GitOps
    • View All E-books

    Cheat Sheets

    • Linux Commands
    • Bash Commands
    • Git
    • systemd Commands
    • View All Cheat Sheets

    Documentation

    • API Catalog
    • Product Documentation
    • Legacy Documentation
    • Red Hat Learning

      Learning image
      Boost your technical skills to expert-level with the help of interactive lessons offered by various Red Hat Learning programs.
    • Explore Red Hat Learning
  • Developer Sandbox

    Developer Sandbox

    • Access Red Hat’s products and technologies without setup or configuration, and start developing quicker than ever before with our new, no-cost sandbox environments.
    • Explore Developer Sandbox

    Featured Developer Sandbox activities

    • Get started with your Developer Sandbox
    • OpenShift virtualization and application modernization using the Developer Sandbox
    • Explore all Developer Sandbox activities

    Ready to start developing apps?

    • Try at no cost
  • Blog
  • Events
  • Videos

Red Hat Process Automation Manager 7.9 brings Apache Kafka integration and more

November 27, 2020
Karina Varela
Related topics:
Event-Driven
Related products:
Red Hat Enterprise Linux

Share:

    Red Hat Process Automation Manager 7.9 brings bug fixes, performance improvements, and new features for process and case management, business and decision automation, and business optimization. This article introduces you to Process Automation Manager's out-of-the-box integration with Apache Kafka, revamped business automation management capabilities, and support for multiple decision requirements diagrams (DRDs). I will also guide you through setting up and using the new drools-metric module for analyzing business rules performance, and I'll briefly touch on Spring Boot integration in Process Automation Manager 7.9.

    Note: Red Hat Process Automation Manager 7.9 updates related to decision management and business optimization also apply to Red Hat Decision Manager 7.9.

    About Process Automation Manager

    Red Hat Process Automation Manager (formerly Red Hat JBoss BPM Suite) and Red Hat Decision Manager (formerly Red Hat BRM Suite) are based on battle-tested open-source software like jBPM, Drools, OptaPlanner, and Kogito. Figure 1 is an overview of each product's capabilities.

    The diagram shows Red Hat Decision Manager inside of Process Automation Manager and lists each tool's features and capabilities.
    Figure 1: Overview of Red Hat Process Automation Manager and Red Hat Decision Manager.

    Process Automation Manager and Decision Manager run on top of on-premises and containerized environments, leveraging enterprise orchestration platforms like Red Hat OpenShift and various cloud providers.

    Integrating Process Automation Manager with Red Hat AMQ Streams (Kafka)

    As part of our effort to improve the integration between Process Automation Manager and Red Hat AMQ Streams, we've introduced a new Kafka task to the 7.9 release. As shown in Figure 2, the WorkItemHandler task allows you to emit events to a Kafka topic running in a Kafka broker.

    An illustration of the Kafka event emitter.
    Figure 2: Emit an event to Kafka.

    This new Kafka task ensures that messages are delivered to the Kafka topic before reaching the next node. The task uses the same retry/rethrow engine mechanism that handles errors in other tasks.

    WorkItemHandler comes with three String input data assignments by default: An event key, the topic name, and the value you want to send in the event. For output, the task uses a default String type of result.

    Before using WorkItemHandler, you need to set up your environment by enabling the task in Business Central and your project. You also need to add the task as a Maven dependency in your project. To learn more about using the WorkItemHandler task in Business Central, see Managing custom tasks in Business Central.

    Analyzing rules performance with the drools-metric module

    This release introduces a new drools-metric module for identifying performance bottlenecks in business rules. Once you've found the bottlenecks, you can adjust your rules implementation to improve performance.

    The Drools rules engine uses the Phreak algorithm to validate facts in working memory against business rules. Adjusting the business rules syntax in your code can significantly increase Phreak's performance.

    In the next section, I will show you how to use the drools-metric module and ReteDumper helper class to discover faulty syntax. We'll use an example from the MetricLogUtils GitHub repository for the demonstration.

    Rules analysis with ReteDumper

    To start, you can use the ReteDumper helper class to output the time spent in each Phreak node so that you can see how many times a node is activated. The screenshot in Figure 3 shows an example of ReteDumper's output.

    Console output from the ReteDumper class.
    Figure 3: ReteDumper output in the console.

    By logging the data in this output, you can find abnormal results like the ones shown in Figure 4.

    Console output with errors highlighted.
    Figure 4: Use the output to identify rules associated with a slow Phreak node.

    The Collect expensive orders combination rule, which I have highlighted in red, is associated with a slow Phreak node. The eval condition, highlighted in blue, causes too many join combinations during rules evaluation. Coupled with performance tuning, this type of data analysis can improve a rule's execution time from 1,524 microseconds to as low as 112 microseconds. Let's run through an example use case from the MetricLogUtils GitHub repository so you can see these results for yourself.

    A use case for drools-metric

    This example demonstrates the performance benefits gained from updating business rules syntax in a common use case. The files for this example are available in the MetricLogUtils repository's src/main/resources folder:

    1. Clone the project and enter its folder:
      $ git clone https://github.com/tkobayas/MetricLogUtils.git
      
      $ cd MetricLogUtils/use-cases/use-case-join/
      
    2. Run the project tests with the default rule implementation:
      $ mvn test
      
    3. Check the result in the logs. You should see a line that indicates the elapsed time in microseconds: elapsed time (ms). Also, notice the delay time: AccumulateNode(8).
    4. Check the differences between the rule's implementation in the files Sample.drl and Sample.drl.fix1. You will find these files in the MetricLogUtils src/main/resources/com/sample/ folder.
    5. To improve rule performance, replace the contents of the file Sample.drl with the implementation available in Sample.drl.fix1.
    6. Rerun the test and check the results:
      $ mvn test
      
    7. Perform the same steps with the file Sample.drl.fix2 and notice the performance improvements.

    Using drools-metric in Decision Manager 7.9

    To use the new drools-metric module in Decision Manager 7.9, you need to add the org.drools:drools-metric Maven dependency to your rules project. You also need to enable the trace log for the class org.drools.metric.util.MetricLogUtils. See Chapter 20. Performance tuning considerations with DRL Red Hat Decision Manager 7.9 in the Decision Manager documentation for more details.

    A new automated pipeline for business dashboards

    Process Automation Manager 7.8 introduced the Dashbuilder component for deploying standalone environments for business dashboards. Dashbuilder lets you create business dashboards in Business Central and deploy reports across multiple environments. Figure 5 shows a dashboard report exposing key performance indicators (KPIs) collected in real-time.

    A graph displays KPIs in the dashboard.
    Figure 5: A dashboard exposes KPIs collected in real-time.

    Starting in Process Automation Manager 7.9, you can use REST APIs or a user interface (UI) to manage dashboards. An automated pipeline lets you export, import, and even deploy multiple dashboards with a single Dashbuilder component.

    We have also improved report customization. You can now develop your own components or use third-party components to display business data. The Heatmap component displayed in Figure 6 is an example of one of the many components freely available from the Dashbuilder community. Heatmap lets us see at a glance which nodes are triggered more frequently and which nodes take more time to execute.

    A flow diagram including the Heatmap component.
    Figure 6: Heatmap is one of many components developed by the Dashbuilder community.

    Multiple DRDs in DMN models

    You can now use multiple decision requirements diagrams (DRDs) in your decision model notation (DMN) models. We can better organize decision logic by splitting complex decisions by their domains. Figure 7 illustrates using multiple DRDs to break down two sets of key decisions into two smaller sets.

    Two sets of decisions are broken into smaller subsets.
    Figure 7: Using multiple DRDs in a complex DMN model.

    Watch the video: DMN—Multiple DRDs support in Process Automation Manager 7.9

    As shown in the following video demonstration, you can easily manipulate your nodes and move them to a new diagram or an existing one. The video also demonstrates how to navigate diagrams, rename them, and model your decision in a self-contained DMN model.

    SpringBoot integration improvements

    This release also improves Process Automation Manager's integration with Spring Boot by enhancing audit data replication and allowing you to create self-contained JAR deployments.

    Conclusion

    This article presented a sample of the many new features in Red Hat Process Automation Manager 7.9. See the release notes for Process Automation Manager 7.9 and Decision Manager 7.9 to learn about the Spring Boot integration, bug fixes, security improvements, and more

    Last updated: May 18, 2021

    Recent Posts

    • How Trilio secures OpenShift virtual machines and containers

    • How to implement observability with Node.js and Llama Stack

    • How to encrypt RHEL images for Azure confidential VMs

    • How to manage RHEL virtual machines with Podman Desktop

    • Speech-to-text with Whisper and Red Hat AI Inference Server

    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Products

    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform

    Build

    • Developer Sandbox
    • Developer Tools
    • Interactive Tutorials
    • API Catalog

    Quicklinks

    • Learning Resources
    • E-books
    • Cheat Sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site Status Dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Report a website issue