Whenever I meet production-rule fan (and now co-chair of OMG Production Rule Representation) James Owen, he always asks me “so what exactly is the conflict resolution strategy in the TIBCO rule engine?“. Recently, TIBCO BusinessEvents 4.0 introduced a feature to make him (and other rule programming specialists) very happy – the customisable conflict resolution mechanism!
What is that?
OK, here’s an attempt at a simple explanation. When a rules engine executes rules, it executes them against “working memory” (i.e. the available event and concept instances available in an agent). Sometimes several rules might be available to execute, and several data and event combinations in turn might be valid for each rule. Conflict resolution is the name given to the task of choosing the order for rule firing with which data – for example by assigning priorities to rules.
So what is this new rule engine capability?
The production rule metadata is now extended in TIBCO BusinessEvents to include a rank – this is a rulefunction / procedure that is executed per rule when conflict resolution is required. Of course this is entirely optional, but it does mean that advanced rule users can now specify any type of depth or breadth-first rule execution strategy…
Naturally this capability is mostly aimed at those doing very specific types of rule processing. For example, if you are looking for specific types of patterns across a large event cloud, you might want to prioritise rules using some special cost function to execute check rules and possibly avoid many other tests if a pattern is found.