Dynamic Rule Reactors are used to automatically generate or remove dynamic rules when there are changes to other dynamic rules. These actions are controlled by rules, and therefore have access to all rules in the model at that time. Reactors are a host-independent feature, and work the same way in all hosts, including server-based implementations.
Certain Dynamic Rule operations trigger Reactors . This makes Reactors a capability useful in a "runtime" context, in an end-user session. These dynamic-rule-related operations are exactly those which an end-user will be initiating, usually through a custom user interface (UI). For testing purposes, you can use the development environment to simulate this process. But the main idea is that Reactors allow you-as-developer to provide a rule-based way of augmenting end-user-initiated changes to the model.
For each kind of change to a Dynamic Rule , such as creation, change, or deletion, you can define "reactor" methods, which tell Intent to perform additional actions at the specified times. The reactor methods are ordinary Intent methods, most which return a list of action lists. The reactor methods can examine the model at the time of the change, can reference other rules to build part or all of the action lists, and have few restrictions in scope. If the reactor returns the empty list, { }, then no actions are taken.