Discretely Reactive Rules

For this type of rule, a rule's threads react to field-value modifications only while threads are pended and, even then, only in a restricted manner.

Discretely reactive rules are inherently more efficient, more stable and safer than continually reactive rules. For example, it should be impossible for a rule author to write discretely-reactive rules that loop endlessly. Such looping would be possible for continually reactive rules.

Thread States

The Engine processes rule threads independently of one another.

All threads are initialized in a READY state.

As the Engine visits rule threads, thread states change:

The Engine visits only READY rule threads. When the Engine visits a thread, the thread's state always changes to a non-READY state.

A thread may remain indefinitely in a PENDED state because relevant fields were never resolved.