Skip to main content
Cloacina Documentation
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Features Overview

Features Overview

A single catalog of Cloacina’s capabilities. Each item links to the detailed tutorial, how-to, reference, or explanation. For whether Cloacina fits your problem, see When to Use Cloacina.

Execution engine

  • Durable, database-backed execution — task and execution state persist in Postgres or SQLite; nothing lives only in memory.
  • At-least-once with recovery — work is claimed atomically; failed or stalled work is recovered. Tasks and graph nodes must be idempotent.
  • Automatic retries — configurable retry policies per task, including conditional retries.
  • Content-versioned workflows — a workflow’s version is derived from its task code and structure, so changes are explicit and safe. See Workflow Versioning.
  • Async-first — built on Tokio; blocking work is offloaded explicitly.
  • Conditional task execution — per-task trigger rules (all / any / none over upstream task states) enable branching and conditional fan-in. See Trigger Rules.
  • External config & secrets — reference connections, secrets, and config by name and resolve them from CLOACINA_VAR_* environment variables at runtime (cloaca.var() / var_or()). See Variable Registry.
  • Two database backends, chosen at runtime — Postgres or SQLite via the connection URL, no recompile. See Database Backends.

Two execution primitives

Computation-graph capabilities

These build on reactors and accumulators — see Concepts first if those terms are new.

  • Accumulators — adapters that turn an external stream or source into boundary events (the discrete events a graph reacts to), in several flavors (passthrough, stream, polling, batch, state). See Accumulator Types.
  • Reactors — fire a graph when their criteria are met (when_any / when_all) with a latest or sequential input strategy.
  • Routing — enum-variant routing propagates results conditionally between nodes.
  • Kafka stream accumulators — consume topics via the kafka feature; see Kafka Stream.
  • CEL firing filters — filter reactor firings with CEL (Common Expression Language) expressions; see Filter Reactor Firings with CEL.

Scheduling & triggers

Deployment modes

Packaging

  • .cloacina packages — a package.toml plus source (Python module tree, or Rust compiled on the server at load). Scaffold, validate, pack, and upload with cloacinactl package. See Creating Your First Package and the Package Format.
  • Reconciler — the server loads and registers uploaded packages automatically. See Reconciler Pipeline.

Multi-tenancy & auth

Clients & UI

  • Client SDKs — Rust, Python, and TypeScript clients for calling a running server over HTTP/WebSocket. See Client SDKs.
  • Web UI — operate and observe a server: workflows, executions (with a live event stream), triggers, computation-graph health, package upload, and API-key management. See The Web UI.

Operations & security

  • Observability — Prometheus /metrics, structured logs, and optional OpenTelemetry export. See Observability and the Metrics Catalog.
  • Package signing — optional signature verification, enforced when the server runs with signatures required; signing private keys are encrypted at rest (AES-256-GCM). See Package Signing and Require Signed Packages.
  • Build sandboxing — the compiler builds untrusted packages in an isolated environment (Linux). See Security Model.
  • Horizontal scaling — stateless schedulers coordinate through the database. See Horizontal Scaling.

Tooling