All other

Drools Canonical Model – Pure Java Rules

    Blog post image      

Rule engines, like Drools, typically  make use of a custom languages to define a set of rules. For example, he Drools compiler translates a drl file to an internal representation (the KiePackages) that is subsequently used to generate the ReteOO/Phreak network that will perform the rules evaluation. This internal representation was never really intended toRead more →

Drools Executable Model (Rules in pure Java)

    Blog post image      

The Executable Model is a re-design of the Drools lowest level model handled by the engine. In the current series (up to 6.x) the executable model has grown organically over the last 8 years, and was never really intended to be targeted by end users. Those wishing to programmatically write rules were advised to doRead more →

(Conditional) Named consequences in Drools 5.5

    Blog post image      

Until now Drools rules have been always expressed in the form: rule "name"when LHS (conditional element)then RHS (consequence)end Sometimes this could be somewhat limiting and leads to verbose and difficult to be maintained repetitions like in the following example: rule "Give 10% discount to customers older than 60"when $customer : Customer( age > 60 )thenRead more →

Small efforts, big improvements

    Blog post image      

Some days ago, following some suggestions of Mark Proctor, I spent just a few hours trying to reduce both the memory footprint and the time requested to create an instance of the WorkingMemory, one of the most used core class of Drools. What I basically did was to lazy initialize all the non-strictly necessary dataRead more →