I need to migrate my current Business Rules Engine to another programming language and maintain same functionality.
Now I'm using Drools.
On my current design I have the following:
- A class with a bunch of attributes that will be analyse by the engine.
- The drools engine that will analyse the generated object over a list of rules.
- An API Rest for communicate with the service
The workflow is:
- Receive a POST over the API Rest
- Generate an object of type MyClass
- Pass that object to the Drools engine
- The first rule that match, stop the process and dispatch an alert of some type. If there's no match also dispatch another type of alert.
- This rules service POST the result to another API Rest.
Mandatory needs for the engine and rules:
- Multi-parameter rules. I mean that I need the rules to accept multiple AND checks in the same rule.
- Similar workflow as the current.
- Open Source
- Rules priorities (a.k.a salience)
- No Java
Desirable needs:
- The rules engine should continue processing after a match or match the more restrictive rule.
- Python language (it can be other but please argument why use that one)
Which rules engine I could use in Python?