Tenzro
Coordination

Workflow.

A workflow is an ordered sequence of saga steps. Each step has an explicit Execute → Verify → Compensate lifecycle and an optional per-step escrow. Workflows produce on-chain receipts and can optionally mirror to a Canton synchronizer for DAML reconciliation.
STATUS
Testnet
CRATE
tenzro-workflow
STABILITY
Stable
TYPE
Component
01

Step lifecycle

Pending  Executing  Verifying  Verified
                          
                           Compensating  Compensated
02

Workflow status

Created  Open  Executing  Verifying  Finalized
                                  
                                   Compensating  Failed
03

Writes

tenzro_workflowOpen
tenzro_workflowStepExecute { workflow_id, step_id, escrow_amount? }
tenzro_workflowStepVerify
tenzro_workflowStepCompensate
tenzro_workflowFinalize
tenzro_mirrorWorkflowToCanton
04

Reads

tenzro_getWorkflow
tenzro_getWorkflowSaga
tenzro_getWorkflowLifecycle
tenzro_getWorkflowReceipt
tenzro_getWorkflowOperationalMetrics
tenzro_listWorkflowReceipts
tenzro_listWorkflowsByCreator
tenzro_listWorkflowsByParticipant
tenzro_listWorkflowsByStatus
05

DID envelopes

Step payloads can be signed by DIDs. The runtime exposes tenzro_verifyDidEnvelope for verifying authorship and integrity.

06

SDK

// Rust
let opened = client.workflow().open(workflow_json).await?;
client.workflow().step_execute(&id, "step-1", Some(1_000_000)).await?;
client.workflow().step_verify(&id, "step-1").await?;
client.workflow().finalize(&id).await?;
client.workflow().mirror_to_canton(&id).await?;

// TypeScript
const opened = await client.workflow.open(payload);
await client.workflow.stepExecute(opened.workflow_id, "step-1", 1_000_000n);
await client.workflow.stepVerify(opened.workflow_id, "step-1");
await client.workflow.finalize(opened.workflow_id);
Related
← All docs