I am looking at ruleby as a two part module. The first piece I want to
use it for is the execution of a ruleset. The actual rules management
should be externalized in my case. In an environment where customers
drive the rules you want them to be able to change those rules without
the need of a deployment or a svn commit. I have been noodling how I
can use ruleby and remove the need for a larger implementation such as
drools.
The basic workflow I am after is:
Customer manages rules through a webui that persists their rules.
Ideally this would be done with a dsl specific to my application
domain and I have not yet figured out how best to approach this. I
really would like a grammar for my customer that generates ruleby
syntax. My app would start with a constant rule engine and empty
rulebook. On startup the persisted rules would be loaded. At some
point, either event based or time based, I would want to clear the
current rules and reload them. (this is because the customer may have
modified, added, or removed a rule). I dont want to have to create a
new engine (which blows away my working memory). Ideally I would have
a method .reset_rules on my rulebook that would remove all existing
rules and then calls .rules. This would allow me to keep a single
engine/rulebook and use my rule engine as a webservice where my users
can assert and retract facts at any point and each assert doesnt
create the need to create a new engine and reload all the rules.
Hope that explains what I'm after.