Skip to content

Rule Model

RulesΒΆ

uml diagram

VersionedIDs are used throughout, changes to a Rule should imply a new Rule version, a new RuleSet version and a new RuleSuite version.

RunOnPassProcessor (output expressions) should only be provided when using the ruleEngineRunner and are treated, like Lambdas, as top level unique concepts. You should organise using output expressions wherever possible as it's not only easier to conceptualise but it's also faster.

Rule ResultsΒΆ

uml diagram

  • SoftFailed results do not cause the RuleSet or RuleSuite to fail
  • DisabledRule results also do not cause the RuleSet or RuleSuite to fail but signal a rule has been disabled upstream
  • Probability results with over 80 percent are deemed to have Passed, you may override this with the RuleSuite.withProbablePass function after creating the RuleSuite.
  • IgnoredRule results also do not cause the RuleSet or RuleSuite to fail but signal a rule has been ignored upstream, typically to aid in reporting of applicable rules
  • DefaultRule is used by Collector to indicate no trigger Rules Passed and defaultProcessor was run. (If no DefaultProcessor was used Failed is returned)
  • UnevaluatedRule is used by RuleEngines to signify that a rule was not evaluated, either due to salience (RuleEngineRunner only) or TriggerGrouping (the trigger rule cannot pass for a row). This value is typically not returned when Spark uses eval / interpreted mode.

RuleResultWithProcessor is only used when using the ruleEngineRunner and is not returned in the column, rather the result of the expression is - shown above as call to "data".


Last update: June 30, 2026 16:57:17
Created: June 30, 2026 16:57:17