Duncan Doyle

Duncan Doyle is the Technical Marketing Manager for the Decision Manager and Process Automation Manager platforms at Red Hat. With a background in Red Hat Consulting and Services, Duncan has worked extensively with large Red Hat customers to build advanced, open-source, decision management and business process management solutions. He has a strong background in technologies and concepts like Service Oriented Architecture, Continuous Integration & Delivery, rules engines and BPM platforms and is a subject matter expert (SME) on multiple JBoss Middleware technologies, including, but not limited to, JBoss EAP, HornetQ, Fuse, DataGrid, Decision Manager and Process Automation Manager. When he’s not working on open-source solutions and technology, he is building Lego with his son and daughter or jamming along some 90’s rock-music on his Fender Stratocaster.

Recent Posts

Spring Boot-enabled business process automation with Red Hat Process Automation Manager

With the release of version 7.1 of Red Hat Process Automation Manager (RHPAM), the platform now supports the deployment of the process automation manager runtime as a “capability” within Spring Boot applications. As Maciej Swiderski, the project lead for jBPM.org (the upstream community project for RHPAM) explained earlier this year, the KIE (Knowledge Is Everything) platform on which RHPAM is built provides Spring Boot Starters to quickly build a business application or microservice with process and case execution capabilities using a minimal amount of code.

Continue reading “Spring Boot-enabled business process automation with Red Hat Process Automation Manager”

Detecting credit card fraud with Red Hat Decision Manager 7

Detecting credit card fraud with Red Hat Decision Manager 7

Red Hat Decision Manager provides a vast array of decision management functionality. From the Decision Tables feature in the new Decision Model and Notation (DMN) v1.1, which implements the full FEEL Compliance Level 3 of the DMN specification, to Predictive Model Markup Language (PMML).

Another powerful feature is the Complex Event Processing (CEP) engine. This engine provides the ability to detect, correlate, abstract, aggregate or compose and react to events. In other words, the technology provides techniques to infer complex events from simple events, react to the events of interest, and take actions. The main difference between CEP and normal rules execution is the notion of time. Where standard rules execution in Decision Manager deals with facts and reasoning over these facts, the CEP engine focusses on events. An event represents a significant change of state at a particular point in time or interval.

Recently, I was asked to demonstrate how Decision Manager CEP can be used in a real-time credit card fraud detection system. One of the requirements I was presented with ended up in an interesting rule implementation that forms the basis of this article. The requirement was defined as follows:

Continue reading “Detecting credit card fraud with Red Hat Decision Manager 7”

Getting Started with Red Hat Decision Manager 7

Getting Started with Red Hat Decision Manager 7

The all new and shiny Red Hat Decision Manager 7 has been recently released. Decision Manager 7 is the successor to Red Hat JBoss BRMS, our business rules and decision management platform. In this post we will have a look at the primary new features and provide instructions on how to get started with the new platform, either on your local machine or in an OpenShift Container Platform.

Red Hat Decision Manager 7 focuses on four main themes: Fit & Finish, Cloud-Native, Decision Model and Notation (DMN), and Business Optimizer.

Continue reading “Getting Started with Red Hat Decision Manager 7”

Your first Business Rules application on OpenShift: from Zero to Hero in 30 minutes

Your first Business Rules application on OpenShift: from Zero to Hero in 30 minutes

In a previous blog post, we explained how to deploy an existing JBoss BRMS/Drools rules project onto an OpenShift DecisionServer. We created a decision/business-rules microservice on OpenShift Container Platform that was implemented by a BRMS application. The polyglot nature of a microservice architecture allowed us to use the best implementation (a rules engine) for this given functionality (business rules execution) in our architecture.

The project we used was an existing rules project that was available on GitHub. We did however not explain how one can create a project from scratch in the JBoss BRMS Business Central environment and deploy it on OpenShift Container Platform. That is what we will explore in this article.

Continue reading “Your first Business Rules application on OpenShift: from Zero to Hero in 30 minutes”


What’s New in Red Hat JBoss BRMS and BPM Suite 6.4

Red Hat has just released new versions of its popular business automation products: Red Hat JBoss BRMS &  Red Hat JBoss BPM Suite 6.4. In this post we will highlight the improvements and new features these releases brings. Apart from stability and performance improvements, version 6.4 brings new, highly requested, features that improve the platform experience in larger enterprises.

The new versions of the platforms are available both from the Red Hat Customer Portal (BPM Suite and BRMS) and the Red Hat Developers website. Installation instructions can be found in the “Getting Started Guide” for BPM Suite and BRMS and on the Red Hat Developers “Get Started” pages for BPM Suite and BRMS. Finally, the installation demo’s have been updated to target the latest versions:

  • https://github.com/jbossdemocentral/bpms-install-demo
  • https://github.com/jbossdemocentral/brms-install-demo

Continue reading “What’s New in Red Hat JBoss BRMS and BPM Suite 6.4”

Micro-rules on OpenShift: The CoolStore just became even cooler!

Micro-rules on OpenShift: The CoolStore just became even cooler!

One of our  most popular Red Hat JBoss BRMS demo’s, and one that has been available for quite some time, is the CoolStore demo. The CoolStore demo shows how business rules can be used to calculate values like promotional and shipping discounts in a shopping-cart. It furthermore illustrates concepts like ruleflow-groups and dynamic rule updates using KieScanner.

Continue reading “Micro-rules on OpenShift: The CoolStore just became even cooler!”

A simple guide to provisioning Vagrant boxes with Ansible

A simple guide to provisioning Vagrant boxes with Ansible

Over the last couple of weeks, I’ve been working on some Red Hat JBoss BPM Suite workshop material. One part of the workshop is a four-hour lab that guides the attendees through the development of JBoss BPM Suite 6.x processes, rules and applications (note that this workshop is available to our customers, please contact your Red Hat account manager or local Red Hat sales representative for more information), but I’m going to be sharing part of the story with you today.

The lab-sessions require a pre-installed and pre-provisioned virtual machine, which contains all the material required to run the lab. This means that I need to create, install, provision and deploy a virtual machine that contains all the required tools and code to successfully run the lab sessions. Obviously this can done by hand, but what’s the fun in that?!

Manual work is error prone, hard to reproduce and definitely hard to version control. Hence, we want to have an automated solution in which we can (declaratively) define the layout and configuration of our virtual machine. Say hello to Vagrant and Ansible!

Continue reading “A simple guide to provisioning Vagrant boxes with Ansible”


Use these six simple steps to get started with Red Hat JBoss Business Resource Planner

Red Hat JBoss Resource Planner (part of Red Hat JBoss BRMS, the enterprise product based on the upstream OptaPlanner community project) is the leading open source constraint satisfaction solver. A constraint satisfaction solver is a solving engine build around sophisticated optimization algorithms that allows to plan for optimal use of a limited set of constrained resources.

Every organization faces scheduling problems: assign a limited set of resources, for example employees, assets, time and money, to build products or provide services. Resource Planner optimizes such planning problems to provide an optimal utilization of resources, resulting in higher productivity, less costs and higher customer satisfaction. Use cases include:

  • Vehicle Routing: What is the optimal set of routes for a fleet of vehicles to traverse in order to deliver to a given set of customers?
  • Employee Rostering: Find an optimal way to assign employees to shifts with a set of hard and soft constraints.
  • Cloud Optimization: What is the optimal assignment of processes to cloud computing resources (CPU, memory, disk)
  • Job Scheduling: Optimise the scheduling of jobs of varying processing times on a set of machines with varying processing power, trying to minimize the makespan.
  • Bin Packing:  pack objects of different volumes into a finite number of bins or containers in a way that minimizes the number of bins used.
  • and many more.

All these problems are, so called, NP-hard problems, which implies that the time required to solve these problems using any currently known algorithm increases very quickly as the size of the problem grows (e.g. adding a destination to a vehicle routing problem, adding a shift to an employee rostering problem). This is one of the principal unsolved problems in computer science today.

As it is impossible to solve these problems, or find the best solution to these problems, in a limited timespan when scaling out, Business Resource Planner uses a set of sophisticated optimization heuristics and meta-heuristics (like Tabu Search, Simulated Annealing and Late Acceptance) to find an optimal solution to these problems.

As said, every organisation has these kind of scheduling problems, and there is a lot to gain from optimising these problems. In the remainder of this post we will walk you through a number of steps to get you started with Business Resource Planner/OptaPlanner to find an optimal solution to your business problem and start increasing productivity, reducing costs and increasing customer satisfaction.

Continue reading “Use these six simple steps to get started with Red Hat JBoss Business Resource Planner”


Get it done with these 5 techniques to debug your JBoss BRMS applications


JBoss BRMS provides a sophisticated and powerful business rules engine. The BRMS rules engine allows an organization, among other things, to:

  • define rules in single, governed, environment.
  • define rules in the domain language (or syntax) of the problem domain.
  • declaratively define rules. It allows to define what to do, not how to do it
  • individually test rules, outside of any application logic.
  • (incrementally) update rules without the need to update and/or restart the application that uses the rules.
  • have better performance on rule execution than in traditional application code.

An often asked question is how to effectively and efficiently debug a rule or a set of rules in a declarative rules engine. Because the rules engine uses sophisticated and complex algorithms like ReteOO and PHREAK, one can no longer simply rely on setting a breakpoint on a left-hand-side (LHS) constraint. When someone is used to imperative programming languages, like Java, declarative languages and runtimes need a bit of practice to debug.

In this article we will provide five ways to make debugging of JBoss BRMS rules applications more efficient and effective.

Continue reading “Get it done with these 5 techniques to debug your JBoss BRMS applications”


Unit-testing your BPM processes by bending time.

One of the core drivers behind modern application architecture, development and delivery methodologies like micro-services, agile and CI/CD is the ability to automatically test any software artifact, from application code to server configuration. Automated testing gives us the reliable, repeatable, assurance that our software meets the required quality with respect to aspects like functionality, performance, and scalability and is ready to be deployed in production. Why should testing of a business-process defined in BPMN2, a deployable software artifact, be any different?

One of the unique features of Red Hat JBoss BPMSuite is that, due to it’s adoption of Maven as de-facto build platform, it allows to utilize standard Java testing practices and methodologies in the business process space. In fact, jBPM (the upstream community project thatforms the base of Red Hat JBoss BPMSuite), provides out-of-the-box JUnit test classes that allow one to easily unit-test business processes defined in BPMN2 (see the jBPM User Guide for more detail).

Continue reading “Unit-testing your BPM processes by bending time.”