ZEN Engine is a cross-platform, Open-Source Business Rules Engine (BRE). It is written in Rust and provides native bindings for NodeJS and Python. ZEN Engine allows to load and execute JSON Decision Model (JDM) from JSON files.
An open-source editor is available on our JDM Editor repo.
URL: https://editor.gorules.io
Running locally:
docker run -p 3000:3000 --platform=linux/amd64 gorules/editorRepository: https://hub.docker.com/r/gorules/editor
- Go to your workspace in Cloudera CML and create a new project
- Give the project a name and desctption and select public or private for your Project Visibility
- For the Initial Setup section choose Git, HTTP and paste the link into the Git URL
https://github.com/richard-vh/cml-python-rules-engine.git - Under Runtime Setup choosed Advanced and select a Python 3 runtime.
- Create Project.
Modify the default files to get started with your own project.
README.md-- This project's readme in Markdown format.cdsw-build.sh-- A custom build script used for models and experiments. This will pip install our dependencies, primarily the scikit-learn library.zen-rules-engine-api.py-- A simple API wrapper for loading the JSON Decision Model (JDM) files and runing REST json requests against it.rule-rngine-jdm-files-- A folder repository the contains the JSON Decision Model (JDM) files for different rules engineimages-- A folder containing images used in the README document
--
- Click Models from the CML menu -> Create New Mode.
- Give the model a name and description and select the authentication type for the REST service API
- Under the Build section, select the File as
zen-rules-engine-api.py - For the Function provide the api entry point function name of
zen-apifrom thezen-rules-engine-api.pyfile - Provide an Example Input of sample JSON, for example:
{
"customer": {
"country": "US"
},
"cart": {
"total": 1500
}
}
- Adjust the Deployment resoucing as required (can run on 2vCPU/4GiB/1replica)
- Launch the model


