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

  1. Virtual Environments
  2. External Deployment - GoRules Agent
  3. 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:

  1. retrieve the decision model from the database,
  2. process it on the fly (deserialization, parsing, lexing, and compiling),
  3. evaluate against the provided context,
  4. 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).