anchor.diff:  This feature is experimental
   ====
   
  -Rule units represent a purely declarative approach to partition a rules set into smaller units, binding different data sources
  -to those units and orchestrate the execution of the individual unit. A rule unit is an aggregate of data sources, global variables
  -and rules. It is possible to define a rule unit by just implementing the ``RuleUnit`` marker interface as in the following example:
  +Rule units represent a declarative approach to partition a rule set into smaller units, binding different data sources
  +to those units, and orchestrate the execution of the individual unit. A rule unit is an aggregate of data sources, global variables,
  +and rules. You can define a rule unit by implementing the ``RuleUnit`` marker interface as shown in the following example:
   
   .A RuleUnit class:
   [source,java]
  
positive.code:                                                 new Person( "Sofia", 4 ) );
  ----
  
  To execute one or more rule units defined in a given ``KieBase`` it is necessary to create a new ``RuleUnitExecutor`` and
  bind it to the ``KieBase`` itself:
  
  [source,java]
  ----
  
negative.code: ----
  
  A rule unit can be executed in passive mode as shown above (corresponding to invoking ``fireAllRules`` on a whole session)
  or in active mode using the ``runUntilHalt`` that is equivalent to the session ``fireUntilHalt``. As for the fireUntilHalt,
  the runUntilHalt is blocking and therefore has to be issued on a separated thread. For example,
  
  [source,java]
  ----
  