Described herein are various approaches that allow rules to be used to
specify actions, that alleviate the complexity and burden of developing
and maintaining rules in a rules-based messaging system, and that provide
more efficient ways of evaluating rules. The approaches allow rules to
specify user-defined transformation functions for transforming messages,
to specify when and how to perform row migration, and to specify other
types of actions. Rules are grouped into rule sets. Several types of rule
sets, referred to as positive and negative rule sets, allow users to use
rules that are less complex to develop and maintain. Rule sets are
evaluated more efficiently by attempting to evaluate the rule set with
less information than is needed to evaluate all the rules in the rule
set. Also, the results of rules evaluations that are based on a set of
values are cached for later retrieval.