Skip to content
Platform / Workflows

Write the process. Preserve its progress.

Express business processes in code. Call Functions and Actions, wait for events or deadlines, coordinate child workflows, and retain the history of each run.

Explore WorkflowsInspect source

How does a process progress over time?

Definition
Code with typed inputs and terminal results
Operations
Functions, Actions, child workflows, signals
Time
Durable waits and business deadlines
Bounds
Duration, operation count, history, and fuel

The process continues when the business does.

Follow a signature request through delivery, a wait, a reminder, and a declared business outcome.

CollectSignature / SIG-1042Guided example · sample data
Waiting

Wait for the business

Wait for a signature change or an absolute deadline. Inspect the current state before choosing the next operation.

Supplier
Meridian Components
Document revision
v3
Signature request
SIG-1042
Supplier active
false
Business outcome
No terminal outcome yet
Deadline-aware process · Day 1
Code owns the process. Every change uses an Action.Explore the example

How Workflows work.

Explore supplier onboarding

Express the actual process.

Use code to branch on results, repeat bounded checks, and select named outcomes. Declare the Functions, Actions, child workflows, and signals the process may use.

Wait for events and deadlines.

Pause for a signature or another declared signal. Set an absolute business deadline, check the current state, and decide what should happen when time runs out.

Compose independently committed work.

Call an Action through its normal planning and review path. Start child workflows, collect results, or race child runs. Each operation retains its own outcome.

Inspect execution and recovery.

Recorded operation results support replay and continuation. Retryable infrastructure failures are distinct from business outcomes such as signed, cancelled, or expired.

Keep business rules in force.

A long-running process does not bypass current Action authority or review requirements. Recovery retains history while the next change still crosses the ordinary Action boundary.

Follow it into the source.

An exact excerpt from the repository, with the complete source file available to inspect and download.

Collect a signature go
	delivered, err := product.Actions.SendSignatureRequest(product.ActionSendSignatureRequestInput{}, target)	if err != nil {		return nil, err	}	deliveryID, err := acknowledgedDeliveryID(delivered)	if err != nil {		return nil, err	}	if _, err := product.Actions.ConfirmSignatureDelivery(product.ActionConfirmSignatureDeliveryInput{DeliveryID: deliveryID}, target); err != nil {		return nil, err	}	check, err := product.Functions.SignatureRequestTerminalCheck(product.FunctionSignatureRequestTerminalInput{RequestID: requestID})	if err != nil {		return nil, err	}	firstWait, err := product.Signals.OnboardingSignatureChanged(target, waitCeilingMS, module.SignalOptions{DeadlineAt: input.ReminderAt, Until: check})	if err != nil {		return nil, err	}	state, err := signatureState(requestID, firstWait)	if err != nil {		return nil, err	}	if outcome, done, err := finishTerminal(requestID, state, target); done || err != nil {		return outcome, err	}	if _, err := product.Actions.SendSignatureReminder(product.ActionSendSignatureReminderInput{}, target); err != nil {		return nil, err	}

Workflows are bounded durable programs. The contract currently caps operations at 256 and recorded history at 8 MiB, with a declared maximum duration and replay fuel. Code owns the control flow. The guided example is a local illustration, not a live recovery benchmark.

Read the capability reference

Connect the next part of the process.

Bring us a process.
We'll build it with you.

A business process, the systems it touches, and the rules it needs to follow.