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.
| Runtime | What it is | Use it when |
|---|---|---|
blazerules Python module | Direct Python binding to the engine. | Your app already controls batching or uses PyArrow/JSON. |
| C++ library | Native API for embedding in a service. | You want the engine inside a C++ process. |
blazerules_io | Kafka, binary decoders, file readers, CDC helpers. | You need broker/file/format adapters but still own the loop. |
blazerules_agent | Local ingest binary for HTTP, stdin, and file tails. | You want a small local collector without writing code. |
blazerules_dashboard | Read-only UI over decision/DLQ/metrics/result files. | You want to inspect decisions and failures locally. |
| Helm chart | Agent 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.
Agent
blazerules_agent --rules rules.yaml --input http --port 9480 --output ndjson --output-path decisions.ndjsonUse 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.yamlThe 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.