The GoRules BRMS consists of a single docker image gorules/brms. Image is built to operate as a standalone Service in the larger system. Other service that require decisioning logic must be integrated with BRMS Rules Engine over HTTP API. Image consists of the BRMS API
, the BRMS UI
, and the Business Rules Engine (BRE)
.
We strongly suggest that you use managed Postgres DB from your cloud provider. For production environment we also suggest having point-in-time recovery.
Additional deployment options
- Virtual Environments
- External Deployment - GoRules Agent
- External Deployment - Embeddable Rules Engine
Stateless
The GoRules BRMS is stateless system and is designed for horizontal scalability. All data including Decision Models, Sessions, Projects, etc. is stored in a Postgres DB.
Decision evaluation flow
Upon the API request of document evaluation (Rules Engine over API), the BRMS will:
- retrieve the decision model from the database,
- process it on the fly (deserialization, parsing, lexing, and compiling),
- evaluate against the provided context,
- return result in response.
GoRules ZEN Engine is built for on the fly processing with performance measured in sub millisecond time for simple models (step 2 and 3).
Application-level resilience
- Dockerized: by using orchestration tools such as Kubernetes, it is easy to manage container failover across clusters.
- Stateless architecture: build from the core to be stateless, it allows images to be restarted or scaled without losing data integrity.
Technical requirements
- Postgres DB (any standalone or managed will work)
- Docker linux os image runner x86_64 architecture such as docker, docker-compose, k8s (e.g., AKS, EKS, GKE), Azure Container Apps, AWS ECS and others.
- Minimum 1GB RAM and 0.5 vCPU
- Environment where GoRules BRMS is hosted must have access to a License server (https://portal.gorules.io/api).