In most processes, there is a need to represent business logic for making decisions. A decision engine provides this functionality in the form of rules or decision trees to help automate decision making.
Let’s take a deeper look into different types of decision engines, how they work and where they play a role in making business decisions.
What is a decision engine?
A decision engine refers to the logic—usually presented as a decision tree or rules flow—that is designed for the automation of decision making. Since most decisions are made up of a series of smaller decisions, it is the responsibility of the decision engine to determine how these smaller results lead to a final outcome.
The business decision logic is translated into code, documented in decision trees, or built in a decision tool or table so that the decisions are implemented in an automated manner. It is the job of the decision engine to delineate the decision logic and then use it to guide decisions and ultimately execute the logic through a business process system.
Essentially, a decision engine is a system or software that is created to streamline and enhance the decision-making process.
How do decision engines work?
Most decision engines work similarly. The engine receives input with the data required to make the required decisions. For example, this data can come from user input, calls to external systems, and databases. In some cases, this data has to be preprocessed or transformed to be used in decision making.
The decision engine then uses a set of rules that are configured in advance outlining the business logic. These rules are organized so that calculations can be executed and data comparisons can be conducted in accordance with the incoming data set.
Then rules are evaluated and the engine determines the appropriate outcome based on the inputs and the configured rules. The final decision is then produced in the proper format for the system that made the rules request. This integration with the requesting system—such as a business process—is key to working with decision engines.
Most decision engines have a mechanism for monitoring the system as well as logging transactions. This is important for both compliance and optimal performance.
Examples of decision engine types
Not all decision engines are built alike, but they do all serve a similar function. They come in different forms that may or may not be adaptable toward meeting a specific use case. Here are some of the most common types of decision engines.
Reactive decision engines
A common type of decision engine is one that triggers decisions based on incoming information or an event. For example, a user action like completing a task or possibly a system alert like an information breach or virus threat. These are very common engines used in applications like cybersecurity.
Policy-based decision engines
There are also decision engines that are based on policies such as compliance rules or standard operating procedures. For example, if a trade is initiated, any associated documentation may need to be archived via specific SEC rules. In this example, the decision engine might evaluate the type of trade and determine if such an archival is required.
Business rules engines
Most people are familiar with business rules engines as they are one of the most common types of decision engines. For example, an applicant has an income over $50,000, a debt-to-income ratio is below 30%, and a credit score over 700, then they qualify for a loan of up to $100,000. Business rules engines execute rules efficiently and also support governance. Knowing what rule was in place at a certain time is very important for compliance.
AI / ML decision engines
A popular decision engine in the last several years is one that leverages Artificial Intelligence (AI) and Machine Learning (ML) to make decisions. This type of decision looks at historical data and adapts the logic around this past information to make decisions. This is very common when predicting things like possible fraud or buying trends. Models can be perfected by improving the accuracy through additional training of the model.
There are pros and cons associated with each type of decision engine and it is important to look at your application requirements prior to determine which decision engine is right for you. Many organizations use more than one decision engine.
Why are decision engines important for process orchestration?
Decision engines are at the core of any automation, and especially of process orchestration, because they allow you to separate business rules from process logic. That means you can easily change a rule (or decision) without having to change the underlying process.
Almost every business process requires some sort of decision to be made—it could be as simple as an approval or rejection or something as complex as looking at several inputs and determining a decision based on some calculation or comparison. For some processes it requires a combination of these in order to determine the path a process instance should take.
However, rules and regulations change and change often. If our processes are required to use those rules to determine the proper process execution, then embedding rules into the process may mean that that process must be updated frequently. Extracting business rules from process automation is not new. The benefits of doing this are many and often most important is the ability to make changes to the business rule without having to modify the process.
For example, assume you are checking a credit score as well as other financial information including salary and investments to determine if a new loan can be obtained by the applicant. Your company rules around minimum figures may change over time, but the process is still the same. By putting the values into a decision engine, you can simply output something like “excellent,” “good,” “risky,” or “poor” to use in your process to branch appropriately.
These decision engines can also evaluate and make more complex decisions as well. There may be mathematical calculations, complex comparisons or even decisions based on previous decisions.
One method for representing this decision logic that is used with process orchestration is Decision Model and Notation (DMN) with an associated decision engine to execute the logic. The model represents the rules and a decision engine executes the model. A Decision Requirement Diagram (DRD) is often associated with DMN tables as well. The DRD shows the inputs and knowledge sources associated with decision making for your DMN in a visual representation.
Let’s take a quick look at DMN and what it can provide.
What is DMN?
DMN is a standard that is published by the Object Management Group. DMN is a standard method employed to articulate and depict recurring decisions in organizational contexts, ensuring the interchangeability of decision models across organizations.
An example of the loan determination risk previously discussed is represented in the DRD below.
As example of an accompanying Determine Loan Risk DMN table is shown below:
In a table like this, the evaluation is set to be the first matched rule. So the credit score is evaluated and then the rules engine will look at if the investment total meets the threshold and then if the annual salary also meets the threshold to determine the Credit Risk for the incoming applicant.
Because of the readability of DMN, both business and IT users can understand the decision management and business rules in the notation. This provides an effective way for teams and departments to collaborate in defining a decision model. These collaborating departments include:
- Business professionals responsible for overseeing and supervising decisions
- Analysts—business or functional—tasked with documentation the initial requirements for specifying the decision models and associated logic
- Developers responsible for workflow automation that will use the decision model
How DMN can be leveraged
DMN is effective as a standalone technology as well as working well with both Business Process Modeling and Notation (BPMN) and Case Management Modeling and Notation (CMMN) standards. With BPMN, a unique activity called a Business Rule Task is used to denote using a business rule engine that accepts inputs and provides outputs based on business rules.
DMN can be used for complex, multi-criteria business rules but also provides a foundation to help stakeholders understand those complex rules. DMN uses easy-to-consume readable diagrams and often decision tables to help in the comprehension of business rules. Modeling the business rules with DMN encourages discussion on the scope of the business rules.
By separating the business rule logic from your process diagram, you reduce both the effort and the risk of building your process orchestration. You can focus directly on the definition of your business rules by providing clear and simply defined decision tables. You can also test and verify your business rules outside of your process definition.
DMN models allow you to develop a library of reusable business rules across many models and establish an organized framework for the creation and oversight of predictive analytic models.
Camunda and DMN
Camunda uses DMN as the decision engine which is executed by our cloud-native workflow and decision engine, Zeebe. With Camunda’s implementation of DMN, business stakeholders and IT teams can work together to implement business rules and automate business decisions using DMN, which is a global standard for decision modeling and automation.
As explained, decisions are an essential part of most business processes. Camunda’s Zeebe provides the execution of the processes and DMN models at scale, ensuring exceptional performance, resilience, and security.
Try it Out
Camunda offers a DMN tutorial to help you learn more about DMN as well as a DMN Simulator.
Learn More
- What is DMN (OMG site)
- How Camunda uses DMN
- DMN Tutorial and Simulator
- What is process orchestration?
- How to create decision tables with Camunda (docs)
Start the discussion at forum.camunda.io