Normally, the event processing mode defaults to cloud. This works when using a "discrete" triggering method (i.e. for example, trigger the execution of the rules when an OpenNMS events comes in).
In order to use built-in feature of Drools to advanced and complex event processing (i.e. Drools Fusion, CEP, Temporal Reasoning), you have to use stream for the event processing mode. Then, instead of calling fireAllRules to trigger the execution of the rules, it is advised to have a dedicated thread that runs fireUnitHalt.
This thread will be running until the halt method is called from the session. In theory, as the session lives while OpenNMS is running there is no need to call it (for the same reason we don't need to call dispose). These methods are useful if we want, for example, persist the current state of the working memory on disk.