Actions and REST calls
Describe an HTTPS call without code and Weave turns it into a reviewable Action on its built-in HTTP connector. OpenAPI documents can supply the operations.
Read the guideDraw a workflow in Studio or write it in YAML, JSON, or Python. Its runs wait for people and events while Weave records their history step by step.
How it works
YAML, JSON, and Python versions of a workflow compile to the same artifact digest before anything runs. Editing a draft never changes a run in progress.
Write the input schema, the steps, and the output schema, in Studio or in a file.
The compiler checks schemas, Actions, and values against a catalog, then produces an artifact with a digest.
Publishing stores an immutable version in a project. A change means a new version.
Activation pins a version to an environment with its connections, worker releases, and human-task assignments.
An input sent to an activation starts a run with its own state and history.
Read a run’s status, output, history, and incidents in Studio, from the CLI, or through the API.
Building blocks
A workflow is a tree of steps: a Decision or a Parallel group always joins again before the next step. Values come from expressions, since Weave has no scripting language.
Describe an HTTPS call without code and Weave turns it into a reviewable Action on its built-in HTTP connector. OpenAPI documents can supply the operations.
Read the guideYour integration code runs in workers, processes that claim a task, call your system, and report the result through the API, with no database access.
Read the guideA human task waits for one authenticated person to choose an allowed decision on a form. Each environment binds the task to people or groups.
Read the guideWeave sends mail through SMTP and reads a mailbox over IMAP without changing it. A reply carrying a valid routing token signals its run.
Read the guideA decision table is a versioned policy with typed input and output that Weave evaluates inside the run, with no worker or provider call.
Read the referenceSchedules start runs on a UTC timetable. Signed webhooks, Kafka records, and email or messaging sources start a run or signal one.
Read about eventsSteps pass verified file references. Weave stores the bytes apart from history, which stays readable. Replay never transfers a document again.
Read the guideAn AI task’s answer counts only when it matches its author’s contract. A Firefly Agentic worker makes the model call.
Read the guideA Loop over items step repeats its steps for each list item. A Call a workflow step runs a published version as a sub-workflow.
Read the step contractsDurability
The Weave API stores workflow versions, run state, and tasks durably. Waits, signals, and human tasks are stored with the run and survive an API restart.
History records what Weave accepted for a run, step by step. Recorded replay reads it offline without contacting anyone.
Weave delivers external calls at least once, because a worker can crash after another system accepted its request. Steps that change another system must be idempotent. Weave retries an Action only when its declared side effect makes a repeat safe. Otherwise the run is suspended with an incident until an operator decides.
Read about tasks, leases, and retriesCode
The repository’s customer-onboarding workflow asks another system about a customer, then waits up to a day for a manager’s decision.
check calls a published Action that asks your system whether the customer is eligible.
approval waits for the customer-approved signal, whose payload must match its schema.
decision is a Transform that accepts the customer only when both answers are true.
In the Python SDK, WorkflowBuilder produces definitions like this one as data. WeaveClient publishes them and starts runs through the HTTP API.
steps:
- id: check
kind: action
uses: onboarding.check-customer@1.0.0
with:
object:
customerId: {ref: /input/customerId}
- id: approval
kind: signal
name: customer-approved
timeoutSeconds: 86400
payloadSchema:
type: object
additionalProperties: false
required: [approved]
properties:
approved: {type: boolean}
- id: decision
kind: transform
value:
object:
accepted:
op:
name: and
args:
- {ref: /steps/check/output/eligible}
- {ref: /steps/approval/output/approved}
output: {ref: /steps/decision/output}Deployment
Your product calls Weave under its own identity and grants, and never needs the orchestration database.
Run Weave as its own service, or embed its compiler and workflow builder, which need no server, database, or network.
Read the embedding guideThe Python SDK describes workflows, controls a platform over its HTTP API, and runs your code in workers. Other languages call the HTTP API.
Read the SDK referenceBring a compatible OIDC or CIAM provider. Weave verifies the provider’s tokens, then checks its own scoped grants for what a caller may do.
Read the identity guideOperations registers an existing Compose project, Kubernetes namespace, or Azure Container Apps environment. A runner beside it applies the plans people approve.
Read the deployment guideAn API process can export metrics and traces to an OpenTelemetry collector over OTLP. Export stays off until you set WEAVE_TELEMETRY.
Operators cancel a run, retry a finished one, or resolve an incident from Operate’s lists of runs and incidents.
Read the incident guideFoundations
Weave is a native pyfly application: dependency injection, controllers, and request filters come from the framework. You can embed the compiler on its own: importing it doesn’t start the application.
An independent Firefly Agentic worker runs AI tasks. It calls the provider and model that the workflow’s AI profile specifies.
The Firefly Software Foundation publishes Firefly Weave under the Apache License 2.0.
Copyright 2026 Firefly Software Foundation. The workflow excerpt is shown unmodified.
Next step
The Weave documentation covers installing the CLI and writing the workflow, and simulation needs no server.