I am using Drools-Guvnor 5.1 release in an enterprise application. The rules created are separated per packages, and for each package there is a snapshot package called LATEST. The KnowledgeAgent polls the snapshot packages to get the latest data and load into the rule engine. Whenever there is a new rule, or updates to an existing one, the application triggers the process of re-creating the package snapshot: builds all the rules within the package, and creates a new snapshot for the package.


The main problem with this approach is that the time to build the package rules, increases quite a lot as the number if rules gets higher. This creates a serious performance hit in the real-time app whenever there is a change to the rules.


I sneaked a bit to the source code, and noticed that when build package is called, Guvnor builds a new binary for all the rules within a package even though not all of them are modified. Would it be possible to incrementally create/update the package binary? This would speed up things a lot when the package has lots of rules but only one rule changes at the time.


What is the best approach for creating the package snapshots? The approach we've taken is to build all the rules within a package into one snapshot, and we ran into this performance issue.


Any ideas/suggestions is much appreciated.


Thanks,

Patricia