Workflows and agents that don't lose their place.
Pyrula runs durable workflows and LLM agents that survive crashes and resume where they left off. Over Kafka, an agent's output and its offset commit bind into one transaction — on a fast, Rust-backed functional core.
pip install pyrula Install only what you need.
Each piece ships as its own package and depends on the shared functional core.
Primitives
Rust-backed Either, Option, Try, immutable IList/IMap, and serde — the typed functional core everything is built on.
DurableWorkflows
Append-only run streams. Replay after a crash and resume exactly where you left off — no lost work.
BuildAgents
The @agent / @tool model with streaming and a clean HTTP surface for serving LLM agents in production.
StreamKafka
confluent-kafka semantics with explicit timeouts and exactly-once (EOS) transactional guarantees.
MovePipelines
Exactly-once Kafka, Delta, and Postgres connectors running on an Arrow-based engine.
Built for work that has to finish.
Survives crashes
Every run is an append-only event stream. Status is derived from the stream, so a restart resumes deterministically instead of starting over.
Exactly-once over Kafka
An agent's output and its offset commit bind into one transaction — read-process-write pipelines with no duplicates and no drops.
Rust-backed core
A fast, typed functional core (Either, Option, Try, immutable collections, Rust serde) underpins every package.
Install what you need
Each piece ships as its own package and depends only on the core. Start small, add workflows, agents, or Kafka when you need them.
Ship durable agents today.
Read the quickstart, or open the cloud console to run and observe your agents.