Unmeshed
Temporal

A Temporal alternative with one flat bill and zero replay rules.

Temporal replays your workflow's entire history just to remember where it left off. That's why workflow code has to stay deterministic, and why changing a running workflow means writing versioning logic first, to keep older runs safe. Unmeshed workers are plain functions, with nothing to replay. Temporal Cloud also bills across four separate meters, actions, active storage, retained storage, and a support fee tied to usage.
Unmeshed counts one flat execution number.

Free tier, no credit card required
From the creators of Netflix Conductor

Trusted by teams at leading organisations

American ExpressJPMorgan ChaseAtlassianUWMCoupangGE HealthCareDTDLT LogoClariAmerican ExpressJPMorgan ChaseAtlassianUWMCoupangGE HealthCareDTDLT LogoClari

Overview

Two different paths to durable execution.

About Unmeshed

Unmeshed is a workflow orchestration platform built by the team behind Netflix Conductor. You define workflows in JSON or YAML, with code based workers in Java, Go, TypeScript, or Python. Retries, waits, and durable state come built in, and every step, code or AI, runs with its own visible cost.

About Temporal

Temporal is an open source durable execution platform, run as Temporal Cloud or self-hosted. Workflow code is written directly in Temporal's SDKs and has to stay deterministic, since workers replay event history to reconstruct state after a failure. Production Temporal Cloud usage bills across actions, storage, and capacity, and self-hosted deployments run a separate database alongside Elasticsearch or OpenSearch for visibility.

Comparison

Unmeshed vs Temporal.

UnmeshedTemporal
Platform
Built forCode-first orchestration for developers and technical teamsDurable execution for long running, fault tolerant application code
Workflow definitionsJSON, YAML, or codeCode only, must stay deterministic since workers replay event history
SDK languagesJava, Go, TypeScript, Python, C# and Rust comingGo, Java, Python, TypeScript, .NET, PHP, Rust
Human in the loopBuilt in approval and manual intervention stepsModeled with signals and application code around workflows
Visual designerIncludedNot included
Resiliency and operations
Change workflow code without versioning logicIncludedNot included
Hold, skip, rollback, retry, restart as direct commandsIncluded
Self-host without a separate search indexIncludedNot included
Self-hosted deploymentIncludedIncluded
Pricing
Billing dimensions to trackOne, workflow executionsFour, actions, active storage, retained storage, support fee
Support fee tied to a percentage of usageNot includedIncluded
Free tier usable in productionIncludedNot included
Upgrade without a sales callIncluded
Security, compliance, and governance
Role-based access controlIncludedIncluded
SSO / SAMLIncludedIncluded
Audit logsIncluded
Self-hosted / on-premise deploymentIncludedIncluded

Ship durable workflows, not replay logic.

Start building fault tolerant workflows with workers that are just plain functions, on a free tier you sign up for yourself.

Pricing

They track four numbers. You'll only need one.

Temporal Cloud usage bills across actions, active storage, retained storage, and a support fee that's whichever is greater, your plan price or a percentage of usage. Unmeshed counts one flat number, a workflow execution, no matter what the workflow does inside it.

Free forever

For solo builders exploring workflow orchestration.

$0/month

No credit card required

Get Started Free
  • 2,000 workflow executions / month
  • Unlimited steps per workflow
  • Community support
Most Popular

Premium

For individuals and small teams ready to orchestrate at scale.

$20/month

Billed monthly, annual saves 2 months

Get Started
  • 10,000 workflow executions / month
  • Batch job scheduling
  • Email support

Enterprise

For organizations with scale, compliance, and infrastructure requirements.

Custom pricing

Tailored to your scale and compliance requirements

Contact Sales
  • Unlimited executions, workflows & seats
  • SSO / SAML and RBAC
  • Dedicated support with SLAs

Temporal Cloud pricing, for reference

See Temporal's pricing page

Essentials, starting at $100/mo

1M actions, 1GB active storage, 40GB retained storage, audit logging included

Business, starting at $500/mo

2.5M actions, SAML SSO included, SCIM as an add-on

Enterprise, contact sales

10M actions, SCIM included, 24/7 support

Usage beyond plan limits bills separately by action volume, storage, and capacity. New accounts start with $1,000 in free credits. Pricing details change often; confirm current numbers on Temporal's site.

Agentic AI

Every AI step gets its own line item.

Temporal

Temporal's own SDKs run AI use cases as standard workflows and activities, but pricing and cost visibility for those calls isn't part of the platform, that logic is on you to build.

Unmeshed

Unmeshed treats AI calls as workflow steps like any other, code steps run at no additional cost, AI steps get tracked and billed on their own, visible per step as the workflow runs. You can see what a single run costs before it scales to a million of them.

Cost and infrastructure

Day one is the easy part with Temporal.

Temporal

Standing up self-hosted Temporal means deploying a database, Cassandra, MySQL, or Postgres, alongside Elasticsearch or OpenSearch for visibility, then keeping both healthy as they grow. Schema upgrades happen through a separate admin tools image, and event history accumulates over the life of every long running workflow, so retention and archival become an ongoing job, not a one time setup.

Unmeshed

Unmeshed runs on a disk log architecture, so scaling stays a question of compute and storage, not a second database to operate.

Feature comparison

Temporal makes you plan for this. Unmeshed already did.

The stuff you won't have to build yourself.

Self hosting

Run it yourself, without a second database to babysit.

Unmeshed

Self host on your own VM or Kubernetes cluster, or use Unmeshed Cloud. On premise deployment is included on the Enterprise plan.

Temporal

Self-hosted production needs a database, Cassandra, MySQL, or Postgres, plus Elasticsearch or OpenSearch for visibility, deployed and upgraded alongside the core service.

Pricing predictability

Know your bill before the workflow runs.

Unmeshed

Workflow executions are counted flat, no matter how long a workflow runs or how much compute it uses.

Temporal

Temporal Cloud bills across four separate dimensions, actions, active storage, retained storage, and a support fee that's whichever is greater, your plan price or a percentage of usage.

Deterministic code, AI where you need it

Mix plain functions and AI steps in the same workflow.

Unmeshed

Workers are plain functions, no replay rules to write around. AI steps run alongside regular code steps, each with its own visible cost.

Temporal

Workflow code must stay deterministic, since workers replay event history to rebuild state. Changing a running workflow safely means writing versioning or patching logic first.

Human in the loop

Approvals as a built-in step, not a signal you wire up.

Unmeshed

Native waits, approvals, and manual intervention steps, available directly in the workflow definition.

Temporal

Human steps are typically modeled with signals and application code built around the workflow.

Code sample

Just functions, nothing extra to maintain.

Workers are plain functions. Register them, start a process, and the platform takes care of the durable execution machinery, with no determinism rules to code around.

worker.py
from unmeshed.sdk.configs.client_config import ClientConfig
from unmeshed.sdk.unmeshed_client import UnmeshedClient
from unmeshed.sdk.decorators.worker_function import worker_function

client_config = ClientConfig()
client_config.set_client_id("your-client-id")
client_config.set_auth_token("your-auth-token")
client = UnmeshedClient(client_config)

@worker_function(name="charge-order", namespace="default", max_in_progress=100)
def charge_order(input: OrderInput) -> ChargeResult:
    # your business logic — the engine handles
    # state, retries, and observability
    return charge_card(input)

client.start()

Frequently asked questions

Still have questions? Talk to us.