Control / script · All operations
Apply business rules
A variant of Run a script
Evaluate a rule set from a rules engine against each row or the collected rows and act on the result.
Status
- In arcform
Not built yet
arcform does not do this yet; it would live in how a Protocol runs. Its place on the roadmap
What other tools call it
Meridian's classification; an independent blind rating agreed on 95.7% of 324 rows (variant, version 3).
Apache Hop (2)
Drools Rule Accumulatorread 2026-09-27Evaluate a Drools rule set against the whole set of rows collected
Drools Rule Executorread 2026-09-27Evaluate a Drools rule set against each row and add result fields
Pentaho Data Integration (2)
Rule Accumulatorread 2026-09-27Evaluate a Drools rule against a collected set of rows
Rule Executorread 2026-09-27Evaluate a Drools rule against each row
Background
A business rules engine is a software system that executes one or more business rules in a runtime production environment.[1] A business rule system lets company policies and other operational decisions be defined, tested, executed and maintained separately from application code.[1] In Apache Hop, the Rules Executor runs each incoming row's fields against a rule set, while the Rules Accumulator first collects the rows.[2][3]
When to use it
In any application, business rules can change more frequently than other parts of the application code.[1] Separating business rules from application code allows business users to modify the rules without the need for IT intervention.[1] A system with external business rules still has the usual requirements of quality assurance and other testing.[1] Failing to separate workflow design from rule design can lead to problems with reusing and controlling both business rules and workflows.[1] Reach for a rules engine when the rules are many, change often and are owned by people outside the pipeline; a handful of stable conditions reads more plainly as a CASE expression. (Meridian's view)
Apache Hop's Rules Executor and Rules Accumulator use Drools as their rule engine.[2][3] In Apache Hop, the Rules Executor may be useful to determine additional information about rows or to route rows onto another transform.[2] In Apache Hop, the Rules Accumulator may be useful to determine the answer to a question or otherwise analyse a dataset.[3] Apache Hop's Rules Accumulator executes the rule set only once all incoming rows have been collected, for example when the previous transform shuts down.[3]
In Talend, tRules uses business rules defined in a Drools file of .xls or .drl format to filter data.[4] In Talend, tBRMS applies Drools business rules to an incoming flow and writes the output data to an XML file.[4]
The method
Most rules engines used by businesses are forward chaining.[1] One class of forward-chaining engine processes production rules, which represent behaviours of the type IF condition THEN action.[1] Some rules engines support backward chaining, in which the engine seeks to resolve the facts to fit a particular goal.[1]
The Rete algorithm is a pattern matching algorithm for implementing rule-based systems, developed to apply many rules or patterns to many objects, or facts, efficiently.[5] The Rete algorithm was designed by Charles L. Forgy of Carnegie Mellon University, first published in a working paper in 1974, and later elaborated in his 1979 Ph.D. thesis and a 1982 paper.[5] The Rete algorithm is designed to sacrifice memory for increased speed.[5] Drools is a business rule management system with a forward and backward chaining inference-based rules engine, using an enhanced implementation of the Rete algorithm.[6]
In Apache Hop's Rules Executor, each column of a row is converted to a Rules.Column object, injected into the rule engine and executed against the rule set.[2] Apache Hop's Rules Executor generates results from Rules.Column objects that the rules create, which the transform picks up by name.[2]
Compared with the alternatives
Business rules encoded in computer code in an operational program are known as business logic.[7] A rule written as a CASE expression in a pipeline is business logic in that sense; a rules engine keeps the same rule outside the pipeline, where it can change without the pipeline changing. (Meridian's view)
Sources
- [1]Business rules engine - Wikipediasecondary source
- [2]Rules executor | Apache Hopdocumentation
- [3]Rules accumulator | Apache Hopdocumentation
- [4]Business rules components | Talend Components for Jobs Helpdocumentation
- [5]Rete algorithm - Wikipediasecondary source
- [6]Drools - Wikipediasecondary source
- [7]Business rule - Wikipediasecondary source