Version 1 of Hein.RulesEngine
This Rules Engine leverages DynamoDB to save rule definitions and rules assoicated to those definitions. An application that wants to apply rules to an object will create a RuleRequest
json payload... do an HTTP POST to the Execute endpoint... the rules engine will take the Ruleset name (it's part of the payload)... grab all enabled rules from the definition/set... run thru them all... and respond back with the highest passing rule.
There's an admin site/screen that allows adminstrators to update rules by doing the following:
- Define entity/payload parameters
- Create conditional statements from payload parameters
- And add resulting properties when all condition statements at met.
Hierarchy
- Rule Definition
a. Properties (Entity Definition)
b. Rules [see Rule] - Rule
a. Enablement Flag
b. Proiority Order
c. Conditions d. Property Results
Pros | Cons |
---|---|
Easy to follow design for admins | Clunky, lots of point and click for configuration |
Internal Functions help rule code gen | If you have really complex rules, yikes, nightmare to find the multiple you need to update |
Rules are grouped together in one definiton |