The Rete Algorithm in Decisions and RULE.net
Blog: The Data Center
What is the Rete Algorithm?
Your first question is likely – how do I say “Rete”? Well, a quick search leading to several dictionaries suggests “Reet” is appropriate while “Ree-tee” and and other pronunciations are less common.
The Rete Algorithm is a design methodology that sacrifices memory for speed. It optimizes execution times by reducing the number of rules or data a transaction requires with an intelligent network or structure of rules and data. The fundamental idea is simple, while implementations can grow to be quite complex.
The principle essentially boils down to creating the leanest decision tree possible at runtime. In a project where you might have millions or billions of business rule transactions – designing their execution in such a way that calls for each and every rule to run will add costly overhead to total execution times. The Rete Algorithm optimizes the rule execution pattern with “test rules” that are placed early and strategically in any execution in order to determine if other data or rules need to be run/accessed or not.
Decisions and the Rete Algorithm
Today, Decisions supports this idea through several different Rule Types that you can design with our Business Rule Engine in combination with our Workflow Engine. To highlight two of these patterns:
A) Rule Sets where the base set is comprised of the “test rules” that determine which templates are then run, and
B) Sequential Rules where the “test rules” are placed early in the sequence and dictate the path the rule execution takes to ensure lean processing.
Future versions of Decisions (targeting the 4.0 release) will include more sophisticated optimization in support of the Rete Algorithm.
Supporting Sources:
https://en.wikipedia.org/wiki/Rete_algorithm
https://techondec.wordpress.com/2011/03/14/rete-algorithm-demystified-part-2/
The post The Rete Algorithm in Decisions and RULE.net appeared first on Decisions Blog.
Leave a Comment
You must be logged in to post a comment.