Joule
Search
K
Comment on page

Declarative Rules

Joule provides a business rules processor that acts upon micro batches within a streaming event context. The Rules processor integrates the JSR-94 compliant Drools engine.

Library details

org.drools:drools-XXXX:8.32.0.Final

Example

rules:
name: anticipated high mobile usage
rule file: /home/joule/rules/dataUsageRules.drl

Attributes

Attribute
Description
Data Type
Required
name
Name of processor
String
rule file
Drools rule file path
String
pool size
Non-functional setting to size the internal caching of Drools container
Integer
Default: 8

Example DRL file

package com.fractalworks.streams.processors.rules;
import com.fractalworks.streams.core.data.streams.StreamEvent;
global com.fractalworks.streams.core.data.streams.Context ctx;
global com.fractalworks.streams.processors.rules.RuleResponse response;
dialect "mvel"
rule "Low data usage"
when
StreamEvent( getValue("dataUsage") < 0.50,
getValue("daysleft") >= 15 )
then
response.setRuleId("Low data usage");
response.put("desc","Low data usage");
end
rule "Medium data usage"
when
$t : StreamEvent( getValue("dataUsage") > 0.50,
getValue("dataUsage") < 0.65,
getValue("daysleft") < 10)
then
response.setRuleId("Medium data usage");
response.put("desc","Medium data usage");
end
rule "High data usage"
when
$t : StreamEvent( getValue("dataUsage") > 0.90,
getValue("daysleft") <= 5)
then
response.setRuleId("High data usage");
response.put("desc","High data usage");
end

Additional Information

Offical Drools documentation can be found here.