Runtime Model

Pick the right runtime shape: embedded Python, embedded C++, IO module, local agent, or Kubernetes deployment.

BlazeRules has one rule engine and several ways to feed it.

RuntimeWhat it isUse it when
blazerules Python moduleDirect Python binding to the engine.Your app already controls batching or uses PyArrow/JSON.
C++ libraryNative API for embedding in a service.You want the engine inside a C++ process.
blazerules CLINative batch/stream command using the core and IO stack.You want to validate, evaluate, backtest, or stream without writing Python.
blazerules_ioKafka, binary decoders, file readers, CDC helpers.You need broker/file/format adapters but still own the loop.
blazerules_agentLocal ingest binary for HTTP, stdin, and file tails.You want a small local collector without writing code.
blazerules_dashboardRead-only UI over decision/DLQ/metrics/result files.You want to inspect decisions and failures locally.
Helm chartAgent DaemonSet plus dashboard Deployment.You want node-local Kubernetes log collection.

Embedded Python

import blazerules

engine = blazerules.RuleEngine()
engine.load_rules("rules.yaml")
result = engine.evaluate_ndjson(payload)

Use this when your application already has events in memory and can call the engine once per batch.

IO Module

import blazerules_io

payload = blazerules_io.read_ndjson_bytes("s3://bucket/events/day.ndjson")

Use this when you need file, Kafka, CDC, or binary decoding helpers but still want your application to own control flow.

Native CLI

blazerules eval --rules rules.yaml --input arrow-ipc --path events.arrow --output grouped-decisions
blazerules stream kafka --rules rules.yaml --brokers localhost:9092 --input-topic transactions --format protobuf --descriptor schema.desc --message payments.Transaction

Use this when you want the same data-plane capability as the Python package through files, stdin, S3 objects, or Kafka topics. Python-only in-memory objects such as pyarrow.RecordBatch map to CLI transports such as Arrow IPC, Parquet, or CSV.

Agent

blazerules_agent --rules rules.yaml --input http --port 9480 --output ndjson --output-path decisions.ndjson

Use the agent for local log-style ingestion: HTTP /v1/logs, stdin, or file tails. The agent still evaluates in batches; it is not a per-record rule server.

Dashboard

blazerules_dashboard \
  --decision-log decisions.ndjson \
  --dead-letter-log dead_letters.ndjson \
  --rules rules.yaml

The dashboard is read-only. It does not mutate rules or engine state.

Kubernetes

The Helm chart runs the agent as a DaemonSet and the dashboard as a Deployment. The default mode tails container logs from each node and writes decision/DLQ files under /var/log/blazerules.

See Kubernetes Log Ingestion and Deployment.


Did this page help you?