KRL declarations cannot cause side effects. That doesn't mean KRL rule sets can't cause persistent changes that are available from one rule-set execution to another. KRL has persistent variables that can be used inside any expression in a rule set and can be changed in the postlude.

KRL has two types of persistent variables. (Persistent variables are currently limited to approximately 1,000,000 characters each.)

Entity, application, and request variables share the same syntax and operations. They differ primarily in the scope of their definition. An analogy might help: Entity variables are similar to instance variables, and application variables are similar to class variables in object-oriented languages.

Persistent variables take four forms:

The following section show how persistent variables are used in various parts of a rule.