Given that facts (after some common initial processing) fall into two or
more classes that should be processed with significantly different (although
not necessarily disjoint) sets of rules and also given that the fact and/or
rule number is prohibitive for processing according to the simple design
pattern of throwing it all into one basket:--
Why not create two (or more) different rule bases and spawn a session from
each? Initial processing could be done with an additional (simple) engine,
with the other sessions being provided via some global, as a service, ready
to accept the classified facts.
True, there will be some overhead, but it's a clean solution, doesn't mess
up the rules with control facts and you get exactly those rules to work on
your facts you put into the different K-bases.
-W