Counting visitors…
Browse all docs
Start · 9Find your path through RunifoldLearn Runifold in 45 minutesUnderstand the complete Runifold platformYour first trustworthy runChoose the right execution APIChoose crates and Cargo featuresBuild common Runifold applicationsRunifold frequently asked questionsTroubleshoot Runifold applications
Execution kernel · 7Understand RunContextCoordinate external effects safelyBound work with budgets and cancellationHandle errors and retries safelyEvents, journals, and execution evidenceDesign capability-safe executionRecover safely from checkpoints
Models & providers · 7Route across models without duplicate outputChoose and configure a providerUse the provider-neutral model protocolBuild on the Provider Runtime contractUse OpenAI control-plane and Realtime APIsTest and benchmark provider adaptersSet up OpenAI, Anthropic, Gemini, and Ollama
Agents · 7Build and configure an AgentGive an Agent typed toolsAdd conversations and semantic memoryDelegate to child Agents safelyReturn structured Rust valuesStream without losing semanticsGround an Agent with retrieval
Durable workflows · 7Compose deterministic workflowsMake workflows durableOperate durable workflow workersCoordinate timers, signals, and durable waitsRun multi-tenant workflow infrastructureRun parallel branches and safe racesVersion and evolve durable workflows
Integrations · 7Connect through MCPChoose stores and persistence boundariesExpose durable work through MCP TasksBuild and evaluate retrieval pipelinesUse MCP Resources, Prompts, and SamplingCache MCP responses without crossing authorityDeploy Runifold in a Rust web service
Quality & operations · 10Test without the networkEvaluate quality and prevent regressionsObserve the complete run treeRun safely in browsers and at the edgeRead reliability claims preciselyRun reproducible evaluations in CIOperate Runifold with SLOsGovern Task retention and deletionArchive audit evidence to S3-compatible WORM storageManage compatibility and trusted releases
Docs/Production
NEW TO RUNIFOLD?Build the complete mental model in 45 minutes
Production

Read reliability claims precisely

Understand what is tested, what evidence exists, and which production areas remain explicitly unverified.

Practical guide·14 min

Claim policy

Read every reliability claim as a statement with scope and evidence. “Supports provider X” may mean compilation, deterministic protocol tests, live smoke tests, or production observation; those are not equivalent.

Runifold is pre-alpha. Expect API evolution, review migrations, and pin the exact crate version used by your application.

Evidence matrix

For each critical path, record:

ClaimRequired evidence
Correct model encodingdeterministic contract tests
Real endpoint compatibilitydated live smoke test
Cancellation propagationfault-injection test
Durable recoveryworker-loss and lease-expiry test
Safe external effectidempotency or reconciliation test

Keep evidence near the release artifact so a future reader can reproduce it.

Establish a release baseline

Pin the exact pre-1.0 version and keep only the features the application uses:

Cargo.toml
[dependencies]
runifold = { version = "=0.9.0", features = ["sqlite-bundled"] }
runifold-providers = { version = "=0.9.0", features = ["openai"] }

Run the deterministic baseline on every change:

cargo fmt --check
cargo check --locked --all-targets
cargo test --locked
cargo clippy --locked --all-targets -- -D warnings

Then add application evidence the compiler cannot provide: one redacted provider cassette per protocol path, budgeted live smoke tests for exact model IDs, forced cancellation, worker-loss recovery, and Effect reconciliation. A green compile proves type compatibility, not endpoint or behavioral compatibility.

Benchmarks

A benchmark is meaningful only with workload, hardware, runtime, concurrency, features, and percentile definition. Provider network latency usually dominates microbenchmarks of local orchestration.

Measure what matters to users: time to first event, total completion latency, resource use, recovery time, and cost. Compare versions under the same fixture.

Pre-alpha expectations

Before production adoption:

  • pin dependencies and review release notes;
  • run your own provider and platform verification;
  • set budgets, deadlines, and explicit capabilities;
  • test cancellation, worker loss, and ambiguous effects;
  • keep a rollback path and inspect journals during incidents.

Open an issue with a minimal reproduction when a documented contract and observed behavior differ.

Production-readiness worksheet

QuestionEvidence to retainRelease blocker
does the exact model support requested tools/streaming/schema?dated live smoke resultunsupported or unknown capability
does cancellation stop local work and bound remote exposure?injected disconnect/deadline testunbounded continuation
can a task resume after process loss?killed-worker recovery fixturerepeated committed step or lost usage
can external writes be retried safely?idempotency/reconciliation testambiguous state treated as failure
can operators explain one run?correlated journal + trace sampleno terminal evidence
can the release be rolled back?tested binary/schema/definition planold tasks require removed code

Record the crate lockfile, Rust version, target, features, provider/model IDs, test timestamp, and fixture revision with the result. Re-run the affected row when any of those inputs changes.

Minimal reproduction template

When behavior differs from the documented contract, reduce it to one pinned Cargo.toml, one source file, exact command, expected result, actual typed error, target/runtime, and whether the test uses a cassette or live endpoint. Remove credentials, prompts, customer content, provider request IDs, and signed URLs.