Back to JamJet

JamJet vs Temporal
for AI Agents

Temporal is the gold standard for durable execution. Battle-tested at massive scale across thousands of production deployments, with broad SDK coverage and a deep feature set. It is excellent at what it does.

But durable execution alone doesn't make AI agents production-safe. Agents need policy enforcement, audit trails, human approval, cost governance, and memory — none of which Temporal provides natively. That's where JamJet comes in.

The short answer: Use Temporal if you already run it for non-AI workflows. Use JamJet if AI agents are the workload — you get policy, durability, memory, signed audit evidence, human-in-the-loop, and cost caps in one fabric, with wrap mode so your existing framework keeps working.

Last updated 2026-05-08

The quick version

Choose Temporal when

  • You already use Temporal for non-AI workflows
  • You need battle-tested durability at massive scale
  • You want the largest ecosystem and enterprise support
  • You're building general distributed workflows, not just AI agents
  • You have a team comfortable with Temporal's programming model

Choose JamJet when

  • Your agents need policy controls and governance
  • You need audit trails for compliance (EU AI Act, financial regs)
  • You need human-in-the-loop as a first-class primitive
  • You want agent memory built into the runtime
  • You need cost governance at the runtime level
  • You want MCP/A2A protocol-native integration

Feature comparison

Capability Temporal JamJet
Durable execution Best-in-class. Event-sourced, battle-tested at massive scale. The industry standard. Event-sourced with checkpoint snapshots. Proven in tests and examples, not yet at Temporal scale.
Policy engine None. No way to block tool calls, enforce model restrictions, or scope agent permissions at the runtime level. 4-level hierarchy (global → tenant → workflow → node). Glob-pattern tool blocking, model allowlists, delegation scoping. 76 tests.
Audit trails Workflow history only. Not separate, not retention-aware, not designed for compliance export. Separate append-only audit log. Per-entry retention policies. Actor enrichment. Designed for compliance.
Compliance evidence packages Workflow history is queryable but not signed, not retention-aware, not formatted for compliance handoff. Ed25519-signed evidence packages. PDF / OTLP / Splunk / Datadog renderers. Per-entry retention. Designed for EU AI Act and financial/healthcare audit handoff.
Human-in-the-loop Via signals — functional but manual. Not a first-class workflow primitive. Requires custom handling. First-class pause/resume/approval nodes. Durable across restarts. Built into workflow IR.
Agent memory None. Bring your own. Engram: temporal knowledge graph, fact extraction, conflict detection, hybrid retrieval, consolidation. 11 MCP tools.
Cost governance None. No per-agent or per-workflow cost tracking or enforcement. Per-workflow and per-agent token/dollar budgets. Runtime-enforced. Automatic escalation.
MCP support None natively. You build it. Client + server. Full spec. 11 Engram tools. MCP Registry listed.
A2A protocol None. Client + server. Streaming, failure handling, agent discovery.
Multi-tenant isolation Namespace-based (Temporal Cloud). Functional but limited scoping. Row-level partitioning. Per-tenant policies, resource limits, cost caps.
Evaluation / testing None. Separate tool needed. Built-in eval harness. LLM judge, assertions, cost scoring. CI exit codes on regression.
PII redaction None. Built-in. Runtime-enforced.
OAuth delegation None. RFC 8693 token exchange. Scope narrowing. Per-step scoping.
Programming model Workflows + Activities + Signals + Queries. Powerful but steep learning curve. Progressive: @task (3 lines) → Agent → Workflow. Python, Java, YAML.
Language SDKs Python, TypeScript, Go, Java, .NET. Best-in-class breadth. Python, Java. Go planned. Fewer languages but deeper agent-native features per SDK.
Runtime language Go core Rust core + Java native runtime
Pricing Self-hosted: free. Cloud: Essentials from $100/mo (1M actions included) + $50/million additional actions + active and retained storage fees. Costs scale with usage. Open source (Apache 2.0). Self-host or run on JamJet Cloud — same SDK and patchers.

What the same agent step looks like

Same task: an LLM call that needs durability, a policy check, and human approval if the model wants to do something high-risk.

Temporal (Python SDK)
@activity.defn
async def call_llm(prompt: str) -> str:
    # durability via @activity is here, but...
    return await openai.chat(prompt)

@workflow.defn
class AgentWorkflow:
    @workflow.run
    async def run(self, prompt: str) -> str:
        result = await workflow.execute_activity(
            call_llm, prompt,
            start_to_close_timeout=timedelta(minutes=5),
        )
        # policy check? you write it
        # approval? signal handler + custom UI
        # audit? workflow history (not designed for compliance)
        # cost cap? you track tokens yourself
        return result
JamJet (Python SDK, native mode)
import jamjet
import jamjet.cloud as cloud

# One-time setup: connect to JamJet Cloud, push a policy, set a cost cap
jamjet.configure(api_key="jj_...", project="research-agent")
cloud.policy("block", "payments.*")
cloud.budget(max_cost_usd=50.0)

# Define an LLM-backed task: one decorator, docstring = instructions
from jamjet import task, tool

@tool
async def web_search(query: str) -> str:
    ...  # call your search API

@task(model="gpt-4o", tools=[web_search], max_cost_usd=5.0)
async def call_llm(prompt: str) -> str:
    """Research assistant. Search first, then summarize findings."""

# Call it like any async function — durability and policy apply automatically
result = await call_llm(prompt)

Same durability. Policy and budget configured at SDK setup; cost cap on the decorator; approval via cloud.require_approval() when you need it. Wrap mode (drop-in for an existing LangGraph or Spring AI agent) gets the same primitives without rewriting the function — see the docs.

Where Temporal excels

Temporal's durability model is the best in the industry. If your primary concern is "my distributed workflows must never lose progress," Temporal is the safe, proven choice. It handles:

  • Massive-scale durable execution (trillions of actions)
  • Complex workflow patterns (signals, queries, child workflows, continue-as-new)
  • Multi-language support (5 SDKs, all production-grade)
  • Enterprise support with SLAs and managed cloud
  • Active integrations with OpenAI Agents SDK, Vercel AI SDK, Pydantic AI

At Replay 2026, Temporal launched serverless workers, durable execution for the OpenAI Agents SDK, and durable execution for the Vercel AI SDK. The agent-integration surface is closing fast.

Where JamJet goes further

JamJet's thesis is that durable execution alone isn't enough for AI agents in production. Agents create unique challenges:

  • Agents call tools autonomously — you need policy enforcement to prevent unauthorized actions, not just retry logic
  • Agents make decisions with real consequences — you need audit trails that are separate from execution history and designed for compliance
  • Agents need human oversight — you need first-class pause/resume/approval, not manual signal handling
  • Agents accumulate context — you need governed memory with conflict detection, not just a key-value store
  • Agents spend money (LLM calls) — you need runtime-enforced cost budgets, not just monitoring
  • Agents need to interoperate — you need MCP/A2A protocol support, not custom integration for each tool

These are not features you can easily add to Temporal. They require agent-native abstractions built into the runtime from the ground up.

Can you use both?

Technically, yes — but it would be unusual. Both are execution runtimes. Using both would mean running Temporal for durability and JamJet for governance, which adds operational complexity.

More practically: if you already use Temporal for non-AI workflows and want to add AI agent governance, JamJet's MCP Gateway (on the roadmap) can sit between your agent and its tools to add policy enforcement and audit trails without replacing Temporal.

If you're starting fresh with AI agents, JamJet gives you durability and governance in one runtime.

The honest tradeoff

Temporal gives you

Battle-tested durability, massive scale, enterprise support, broad language coverage, proven at thousands of companies. You sacrifice agent-native governance — you'll build policy, audit, HITL, memory, and cost controls yourself.

JamJet gives you

Policy, durability, memory (Engram), replay, signed audit evidence, HITL nodes, and cost caps in one open-source runtime. Today's SDK coverage is Python and Java; TypeScript and Go are on the roadmap. The framework-integration surface is narrower than Temporal's broad workflow ecosystem. Pick JamJet when AI-agent-specific primitives outweigh the breadth tradeoff.

Ready to try JamJet?

Start with a 60-second quickstart. Add governance controls as you need them.

Read the quickstart View on GitHub