Skip to content
🚀 Play in Aletyx Sandbox to start building your Business Processes and Decisions today! ×

Aletyx Enterprise Build of Drools - Enterprise Support for the Powerful Drools Engine

What is Drools?

Drools is the most used open source rules engine project in the world providing a powerful a power Decision engine with Management capabilities that forms the one of the main pillars of the Aletyx Enterprise Build of Kogito and Drools. As an enhanced build of the Apache KIE project, our version of Drools provides all the benefits of the open source foundation with additional enterprise features that enterprises require that might not be compatible with Apache® Foundation requirements. At Aletyx, we provide the enterprise support and features to get your decisions project from concept to production faster with added confidence that only Aletyx can provide!

Key Capabilities

The Aletyx Enterprise Build of Drools includes:

1. Rule Engine (DRL)

The traditional Drools Rule Language (DRL) provides a flexible, expression-based approach to authoring business rules:

rule "High Value Customer"
when
    $customer: Customer(yearlySpend > 10000, status != "VIP") // (1)
then
    modify($customer) { // (2)
        setStatus("VIP"), // (3)
        setDiscountRate(0.15) // (4)
    }
    System.out.println("Customer " + $customer.getName() + " upgraded to VIP");
end
  1. Create a variable customer that is based on a Customer object with yearly spend more than 10,000 and not currently a VIP customer
  2. Modify is a key word in Drools. See Modifying Facts to learn more how this block works.
  3. Set the status of the current customer to VIP
  4. Set the Discount Rate of the current to 15%

Decision Model and Notation™ (DMN™)

DMN provides a business-friendly approach to decision modeling with visual decision requirements diagrams and decision tables:

if applicant.age > 25 and applicant.income > 50000 then "Approved" else "Review" # (1)
  1. FEEL Literal Expression looking at an Applicant's Age and Income

The Aletyx Enterprise Build of Drools DMN implementation includes:

  • DMN 1.5 standard compliance
  • Decision service integration templates provided with Accelerators attached to Aletyx Studio
  • DMN model validation and testing tools

Decision Tables in Drools Rules Language (DRL)

For business-friendly rule authoring without coding:

  • Spreadsheet-based decision tables
  • Web-based decision table editors with Decision Modelling and Notation
  • Automated validation and consistency checking

To learn more about DMN Decisions, see Decision Model and Notation Introduction To learn more about DRL Spreadsheets, see Creating Your First Decision Table with DRL

Runtime Environments

The Aletyx Enterprise Build of Drools supports multiple deployment scenarios:

  • Embedded within Java applications
  • Standalone decision services
  • Container-based microservices
  • Serverless function deployments

Integration Points

Aletyx Enterprise Build of Drools integrates seamlessly with:

  • jBPM and Kogito for decision-driven process automation
  • Aletyx Studio for visual development
  • Spring Boot™
  • Quarkus™ for cloud-native applications
  • Event-driven architectures via Apache Kafka™ and other event driven architectures
  • Monitoring tools like Prometheus and Grafana

API Overview

The Aletyx Enterprise Build of Drools} provides several APIs for different use cases:

Legacy Java API

KieServices kieServices = KieServices.Factory.get();
KieContainer kContainer = kieServices.getKieClasspathContainer();
KieSession kSession = kContainer.newKieSession("ksession-rules");

// Insert facts
Customer customer = new Customer("John", 100000);
kSession.insert(customer);

// Fire rules
kSession.fireAllRules();

REST API

For service-oriented architectures, the Aletyx Enterprise Build of Drools provides REST endpoints that can be autogenerated through the usage of queries within the Drools Rules Language (DRL), DMN and BPMN:

curl -X POST "https://decisions.example.com/api/rules/customer-classification" \
     -H "Content-Type: application/json" \
     -d '{"customer": {"name": "John", "yearlySpend": 100000}}'

Next Steps