> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gorules.io/llms.txt
> Use this file to discover all available pages before exploring further.

# BRE and BRMS

> Understand how the ZEN Engine (BRE) and GoRules BRMS work together.

export const BREBRMSDiagram = () => {
  return <div style={{
    backgroundColor: '#1a1a2e',
    borderRadius: '12px',
    padding: '40px',
    margin: '24px 0',
    display: 'flex',
    alignItems: 'center',
    gap: '60px',
    position: 'relative'
  }}>
      {}
      <div style={{
    position: 'relative',
    width: '260px',
    height: '280px',
    flexShrink: 0
  }}>
        {}
        <div style={{
    position: 'absolute',
    width: '260px',
    height: '260px',
    borderRadius: '50%',
    backgroundColor: '#3b5bdb',
    top: '0',
    left: '0'
  }}>
          <div style={{
    position: 'absolute',
    top: '35px',
    left: '0',
    right: '0',
    textAlign: 'center',
    color: 'white',
    fontFamily: 'system-ui, -apple-system, sans-serif'
  }}>
            <div style={{
    fontSize: '15px',
    fontWeight: '500',
    lineHeight: '1.4'
  }}>
              Business Rules<br />Management System
            </div>
            <div style={{
    fontSize: '13px',
    opacity: 0.85,
    marginTop: '4px'
  }}>(BRMS)</div>
          </div>
        </div>

        {}
        <div style={{
    position: 'absolute',
    width: '150px',
    height: '150px',
    borderRadius: '50%',
    backgroundColor: '#5c7cfa',
    bottom: '25px',
    left: '55px',
    display: 'flex',
    alignItems: 'center',
    justifyContent: 'center'
  }}>
          <div style={{
    textAlign: 'center',
    color: 'white',
    fontFamily: 'system-ui, -apple-system, sans-serif'
  }}>
            <div style={{
    fontSize: '14px',
    fontWeight: '500',
    lineHeight: '1.4'
  }}>
              Business Rules<br />Engine
            </div>
            <div style={{
    fontSize: '12px',
    opacity: 0.85,
    marginTop: '4px'
  }}>(BRE)</div>
          </div>
        </div>

      </div>

      {}
      <div style={{
    fontFamily: 'system-ui, -apple-system, sans-serif',
    display: 'flex',
    flexDirection: 'column',
    gap: '24px'
  }}>
        {}
        <div>
          <div style={{
    color: 'white',
    fontSize: '16px',
    fontWeight: '600',
    marginBottom: '10px'
  }}>
            GoRules BRMS
          </div>
          <ul style={{
    color: '#a0aec0',
    fontSize: '14px',
    lineHeight: '1.7',
    margin: 0,
    paddingLeft: '18px'
  }}>
            <li>Enhanced Authoring Capabilities</li>
            <li>Rule Repository with Version Control</li>
            <li>Debugging and Simulation</li>
            <li>Audit Logs</li>
          </ul>
        </div>

        {}
        <div>
          <div style={{
    color: 'white',
    fontSize: '16px',
    fontWeight: '600',
    marginBottom: '10px'
  }}>
            ZEN Engine <span style={{
    fontWeight: '400',
    color: '#a0aec0'
  }}>(Open Source)</span>
          </div>
          <ul style={{
    color: '#a0aec0',
    fontSize: '14px',
    lineHeight: '1.7',
    margin: 0,
    paddingLeft: '18px'
  }}>
            <li>Rule Execution</li>
            <li>Deterministic If-then Logic</li>
            <li>Library - Foundational Element</li>
          </ul>
        </div>
      </div>
    </div>;
};

GoRules consists of two main parts: the **BRMS** (Business Rules Management System) for managing rules, and the **ZEN Engine** (BRE) for executing them.

<BREBRMSDiagram />

The **BRMS** is the management platform where you author, test, version, and publish rules. It includes the ZEN Engine internally for testing and direct API evaluation.

The **ZEN Engine** is the high-performance execution engine. It runs inside the BRMS, and also powers the Agent and SDKs that execute rules in your environments.

## GoRules BRMS

The BRMS is the recommended starting point for most organizations. It provides everything you need to manage business rules at scale.

| Capability | Description |
| - | - |
| **Visual editor** | Drag-and-drop interface for building decision graphs |
| **Collaboration** | Multiple users, projects, and access controls |
| **Version control** | Track changes, compare versions, roll back |
| **Testing** | Built-in simulator to validate rules before publishing |
| **Releases** | Publish rules to different environments |
| **Audit logs** | Track who changed what and when |
| **API access** | Evaluate rules directly or publish to Agents/SDKs |

### When to use BRMS

* Business users need to create or modify rules
* You need version control and audit trails
* Multiple teams collaborate on rules
* You want a managed workflow for publishing rules

## ZEN Engine

The ZEN Engine is the open-source rules execution engine that powers all of GoRules. It's written in Rust for maximum performance.

| Capability | Description |
| - | - |
| **Sub-millisecond** | Evaluates most decisions in under 1ms |
| **Cross-platform** | Native SDKs for Node.js, Python, Go, Rust, Java, Kotlin, Swift |
| **Embeddable** | Runs in-process with your application |
| **Open-source** | Available on [GitHub](https://github.com/gorules/zen) |

### Standalone usage

You can use the ZEN Engine without the BRMS if you only need rule execution and will manage rule files yourself.

| Component | Purpose |
| - | - |
| [ZEN Engine](https://github.com/gorules/zen) | Core execution library |
| [JDM Editor](https://github.com/gorules/jdm-editor) | React component for building rules |
| [Standalone Editor](https://github.com/gorules/editor) | Desktop app for editing JDM files |

**When to use standalone:**

* Building a product with embedded rules
* You have your own storage and versioning
* Developers manage all rules (no business user access needed)
* Maximum control over the rules lifecycle

<Note>
  When using the ZEN Engine standalone, you're responsible for storing, versioning, and distributing JDM files to your applications.
</Note>

## Using them together

Organizations often use both BRMS and ZEN Engine together when they need maximum performance:

1. **Author in BRMS** - Business users create and test rules in the visual editor
2. **Publish releases** - Rules are published to object storage (S3, Azure, GCS)
3. **Execute via SDK** - ZEN Engine runs embedded in your application

With the embedded SDK, rule evaluation is sub-millisecond because there's no network overhead - no REST API calls, no serialization. The engine runs in-process with your application.

```mermaid theme={null}
flowchart LR
    brms["BRMS<br/>(author & publish)"] --> storage["Object Storage"]
    storage --> app
    subgraph app["Your Application"]
        sdk["ZEN Engine SDK"]
    end
```

## Choosing your approach

| Scenario | Recommendation |
| - | - |
| Business users edit rules | BRMS |
| Need audit trails and version control | BRMS |
| Team collaboration | BRMS |
| Building a product with embedded rules | ZEN Engine standalone |
| Developers manage all rules | Either (BRMS adds convenience) |
| Maximum performance, minimal dependencies | ZEN Engine standalone |

Most organizations start with the BRMS and use Agents or SDKs for production execution. The standalone ZEN Engine is best suited for product teams embedding rules into their own software.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.