State machines, deployed
Define finite state machines in JSON, publish versioned definitions, spin up instances via API, and watch state transitions in real-time. Zero servers. Edge-native. Usage-metered.
// 1. Define a machine
const sdk = new OrcheateClient({ apiKey: 'orch_...' });
const machine = await sdk.machines.publish({
slug: 'order-flow',
definition: {
initial: 'pending',
states: {
pending: { on: { CONFIRM: 'confirmed', CANCEL: 'cancelled' } },
confirmed: { on: { SHIP: 'shipped' } },
shipped: { on: { DELIVER: 'delivered' } },
delivered: { type: 'final' },
cancelled: { type: 'final' },
}
}
});
// 2. Create an instance
const instance = await sdk.instances.create({ machineSlug: 'order-flow' });
// 3. Send events
await sdk.instances.send(instance.id, { type: 'CONFIRM' });
// 4. Subscribe to live state
sdk.instances.subscribe(instance.id, (state) => {
console.log('Current state:', state.value); // 'confirmed'
});Everything a state machine needs
Edge-native runtime
Each instance runs as a Cloudflare Durable Object. Sub-millisecond event processing, globally consistent state.
Versioned definitions
Publish new machine versions without breaking running instances. Each instance pins to its published version.
Live inspector
Subscribe to state transitions via WebSocket. Watch your machines run in real-time from the console.
Usage analytics
Per-org dashboards for transitions, active instances, and API call volume โ all from Analytics Engine.
API-key + JWT issuance
Issue scoped API keys for your team and Ed25519-signed end-user JWTs for embedding runtime in your app.
Team collaboration
Org-level access with owner/admin/editor/viewer roles. Invite teammates, manage permissions.
Ready to orchestate?
Free tier includes 100 instances and 10,000 transitions per month. No credit card required.
Create your free account