javarule-enginebusiness-rulesilog

difference between RetePlus and Sequential execution mode in ilog jrules


I have come across different execution modes when I used a ruleflow in ilog jrules , reteplus algorithm , sequential mode execution etc. Whats the difference between those. Please dont ask me to refer IBM docs. I already did. some other plain language explanation is appreciated.


Solution

  • A "very" simple explanation:

    RetePlus in simple terms allows objects in working memory (WM) to be inserted/deleted/updated, then evaluated and matched with the conditions on the rules. Any rules that do match get put into an agenda and then fired. If those rules change data in working memory, this could potentially fire more rules whose conditions match the changed objects. The cycle continues until there are no more rules that match the objects in WM.

    Sequential pretty much runs through the rules in the specified order, firing off rules whose conditions match the objects then exits. Any changes to data will not be re-evaluated and will not fire further rules.

    There is also Fastpath, that sits in between. It uses the condition matching capability of RetePlus (for performance reasons), but does not re-evaluate changed data (so is not cyclical).