Glossary
Key terms used throughout the Orch8 documentation and API.
| Term | Definition |
|---|---|
| Sequence | A workflow template — reusable definition of blocks to execute |
| Instance | A single execution of a sequence — has its own state, context, and outputs |
| Block | A unit of work in a sequence (step or composite) |
| Step | A leaf block that executes a handler function |
| Handler | A function that does the actual work — built-in Rust or external worker |
| Composite | A block that contains other blocks (parallel, race, router, etc.) |
| Execution Tree | Runtime tree of nodes for composite sequences, persisted in execution_tree |
| Worker Task | A row in worker_tasks for external handler execution |
| DLQ | Dead Letter Queue — failed instances queryable via GET /instances/dlq |
| Tick | One scheduler cycle (default every 100ms) |
| Claim | Atomic acquisition of an instance for processing (FOR UPDATE SKIP LOCKED) |
| Context | Multi-section state traveling with an instance (data, config, audit, runtime) |
| Signal | An external command sent to a running instance (pause, resume, cancel, custom) |
| Concurrency Key | String key limiting parallel execution of related instances |
| Rate Limit Key | Resource identifier for per-resource sliding window rate limiting |
| Idempotency Key | Deduplication key preventing duplicate instance creation |
| Memoization | Caching step output so re-execution on retry returns the same result without re-running |
| Reaper | Background process reclaiming stuck worker tasks after heartbeat timeout (60s) |
| sub_sequence | A block type that creates a child instance from another sequence. Parent waits for child, then merges child context.data |
| Session | A named group linking related instances. Lifecycle: Active → Completed / Expired. Cancel or query all instances in a session at once |
| Circuit Breaker | Per-handler state machine (Closed → Open → HalfOpen) that stops dispatching to failing handlers until cooldown expires |
| SLA Timer | Per-step deadline (wall-clock). On breach, an escalation handler fires (e.g., alert on-call, downgrade account) |
| Hot Migration | Rebinding a running instance to a new sequence version without stopping it. Validated: only non-terminal instances can be migrated |
| Interceptor | Lifecycle hook attached to a sequence: before/after step, on-signal, on-complete, on-failure. Invokes a named handler with configurable params |
| Queue Routing | queue_name on a StepDef routes its worker task to a specific worker pool. Workers poll by queue name and handler type |
| A/B Split | Deterministic hash-based routing of N% to variant A, M% to variant B. Native block type for subject line and send-time experiments |
| Dynamic Injection | Adding steps to a running instance at runtime via POST /instances/{id}/inject-blocks. Injected blocks stored in metadata._injected_blocks |
| Checkpoint | A periodic snapshot of instance state. Kept as the N most recent per instance, prunable on demand |
| Audit Log | Append-only event journal (audit_log table). Every state transition recorded, queryable per instance via GET /instances/{id}/audit |
| SSE Streaming | GET /instances/{id}/stream — Server-Sent Events stream pushing block outputs in real time as steps execute |
| WASM Plugin | Sandboxed handler compiled to WebAssembly. Registered via /plugins API, dispatched via wasm:// handler prefix. Runs in Wasmtime with memory and timeout limits |
| gRPC Plugin | External gRPC service called directly as a step handler. Dispatched via grpc://host:port/Service.Method prefix. No worker polling needed |
| Trigger | Event source that automatically creates workflow instances. Four types: HTTP webhook (/triggers/{slug}/fire), NATS subject subscription, file-system watch, and in-process event bus |
| ReAct Agent | Reason + Act loop pattern: LLM reasons about a task, picks a tool, executes it, observes the result, and loops. Built-in template with llm_call + tool_call + loop blocks |
| Encryption at rest | AES-256-GCM encryption applied to context fields before writing to the database. Enabled by setting ORCH8_ENCRYPTION_KEY (64 hex chars). Transparent to workers and handlers |
| API Key Auth | Optional Bearer token middleware. Set ORCH8_API_KEY to require Authorization: Bearer <key> on every request. Empty = no auth |
| Worker Dashboard | Built-in Vite + React SPA served by the engine. Provides an overview of active workers, instance inspector, and task monitoring without any external tooling |
| orch8 init | CLI scaffolding command. Generates orch8.toml (SQLite defaults), sequence.json (hello-world), and docker-compose.yml (Postgres + engine). Write-if-absent — safe to re-run |