> ## 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.
