From the creators of Netflix Conductor
Stop paying per state transition.
Unmeshed replaces ASL JSON state machines with real code in Java, Go, Python, or TypeScript. Durable execution, retries, and observability all come built in, and pricing stays flat no matter how many transitions you run.
What does per-transition billing cost at your volume?
Move the slider to your monthly state-transition volume and compare a metered bill with a flat one.
AWS Step Functions, Standard Workflows
$250/ month (est.)
Grows with every state transition your workflows make.
Estimate based on AWS published Standard Workflows pricing; verify with the AWS calculator.
Three ways out of the state machine
Write code, not ASL JSON
Author workflows in Java, Go, Python, or TypeScript. Steps are ordinary functions, testable, reviewable, and versioned like the rest of your codebase.
Predictable bill
No per-transition metering. Your workflows can grow from thousands to billions of steps without the invoice growing with them. Pricing stays flat and predictable.
Cloud-agnostic
Run in the cloud or self-host on your own infrastructure. Unmeshed runs alongside your existing AWS services, so you keep calling Lambda, SQS, and everything else.
How each approaches orchestration
Both platforms run durable workflows. They differ in how workflows are written, billed, and where they can run.
| Area | How Step Functions approaches it | How Unmeshed approaches it |
|---|---|---|
| Authoring model | Workflows are defined in Amazon States Language (ASL), a JSON-based state machine specification, or composed visually in Workflow Studio. | Define workflows however your team prefers, drag-and-drop them in the UI, or write them in code with SDKs for Java, Go, Python, and TypeScript. Both produce the same JSON process definition: portable, reviewable, and version-controlled right alongside your application. |
| Billing model | Standard Workflows are billed per state transition; Express Workflows are billed by request count and duration. | Flat, predictable pricing with no per-transition or per-action fees. Free tier available, no credit card required. |
| Cloud portability | Runs as a managed service within AWS. | Cloud-agnostic. Deploy in the cloud or self-host, alongside your existing AWS services. |
| Local development & testing | State machines are JSON definitions; AWS provides tooling for testing them locally and in the console. | Steps are ordinary functions in your language. Run, unit-test, and debug them locally like any other code. |
| Human-in-the-loop | Supported through callback patterns where a task waits for an external signal to resume. | Built-in human-in-the-loop steps for approvals and manual actions, visible in the same execution view. |
| Scheduling | Scheduled executions are typically configured through Amazon EventBridge rules. | Standard 5-field cron scheduling, down to one-minute intervals, from recurring jobs to month-long durable runs, plus event triggers. |
| Observability | Execution history and monitoring through the AWS console and CloudWatch. | Built-in execution visibility with search across workflows and steps, retries, and durable execution history. |
Evaluating more than one option? See how Unmeshed compares to Temporal, Camunda, and others
Same logic. One is code.
{
"StartAt": "ChargePayment",
"States": {
"ChargePayment": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:123456789012:function:charge",
"Retry": [
{
"ErrorEquals": ["States.TaskFailed"],
"MaxAttempts": 3
}
],
"Next": "SendReceipt"
},
"SendReceipt": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:123456789012:function:receipt",
"End": true
}
}
}import { UnmeshedClient } from "@unmeshed/sdk";
const client = new UnmeshedClient({
/* your credentials */
});
// Plain functions: unit-test, review, and
// version them like any other code.
const chargePayment = async (order: Order) =>
payments.charge(order);
const sendReceipt = async (order: Order) =>
receipts.send(order);
// Retries, durability, and observability are
// handled by the platform.
client.startPolling([
{ name: "charge-payment", namespace: "default", worker: chargePayment },
{ name: "send-receipt", namespace: "default", worker: sendReceipt },
]);Frequently asked questions
Explore the platform
Unmeshed handles workflows, API orchestration, batch jobs, and AI-agent orchestration on one platform.
Workflows
Durable, multi-step workflows written and versioned in code.
API Orchestration
Build high-scale API endpoints backed by workflows.
Batch Job Processing
Sub-second scheduling with dependencies between jobs.
Agentic AI
MCP-native orchestration for AI agents and tools.
Migrate from Conductor
A guided path from Netflix Conductor to Unmeshed.
SDKs & quickstart
Get running with the Java, Go, Python, or TypeScript SDKs.
Orchestrate in code. Pay a flat rate.
Free tier, no credit card. Keep your AWS services.