Alex Rousskov wrote:
Should we simply rely on timeouts and other external measures to break
loops? Or should we try to prevent loops on a language level? Or am I
seeing loops when none exist?
I think the latter is the case. ;-) At least IRML does not allow such
loops. When I talked about the re-evaluation of rule conditions I did
not mean that a single rule can or should be evaluated more than once
for a given message. Rather what I meant was that if the same message
property is referenced in two different rules, then the rule processor
must not assume that the property value will be the same for both rules.
I don't think it's a good idea to get into the business of loops and
loop prevention by allowing the rule processor to evaluate a rule a
second time if a message propery value changes. In fact, I think such
behavior would potentially lead to very unintended results because the
order in which rules (and services for that matter) are processed can
make a big difference. The order in which rules are processed should be
determined before they are evaluatated.
-Andre