Arazzo
Arazzo describes what a sequence of API calls achieves together: ordered steps, the criterion each must satisfy, and the outputs that feed the next one. It sits above OpenAPI, which describes calls individually. Connect publishes three workflows at /developers/workflows.arazzo.yaml, to 1.1.0.
The gap Arazzo fills#
An OpenAPI document tells you every call you may make and none of the order in which they are useful. The knowledge that you must search before you fetch, or check status before you make a claim, normally lives in prose that a person reads and a program cannot. Arazzo moves that knowledge into a file.
A document names its sourceDescriptions — the OpenAPI documents it draws operations from — and then a list of workflows. Each workflow has inputs, ordered steps and outputs. Each step names an operation, supplies parameters, declares successCriteria that decide whether it worked, and exposes outputs that later steps refer to by name.
The result is a sequence a client can follow without a human having translated a tutorial into code, and — more usefully — one that can be tested. A step whose success criterion stops holding is a broken workflow, visible in a build rather than in a support ticket.
Does Connect use Arazzo?#
Yes, as a publisher. /developers/workflows.arazzo.yaml is generated by the documentation build to 1.1.0, drawing its operations from the public OpenAPI description. Three workflows are published, all over the public documentation API.
| Workflow | Steps | Why the order matters |
|---|---|---|
answer-a-question-about-connect | search → fetch | A search result carries a one-paragraph summary: enough to choose a page, not enough to answer from |
check-a-capability-before-claiming-it | status → locate | Reading the status manifest before the page is what separates a correct answer from a confident wrong one |
enumerate-what-is-not-available | foundation → notYet | Two listings, because 'exists as foundation' and 'not implemented' are different answers |
Nothing in Connect *executes* Arazzo. The file is a description for other people's tools; the product's own internal flows — a message arriving, a draft being approved, a call being placed — are not exposed as a developer API and do not appear here. Those are documented in prose under End-to-end workflows.
Reading a workflow file without learning the whole format#
Find
sourceDescriptionsat the top.Result You know which API the operations belong to — here, the public documentation API described by
openapi.yaml.Pick a workflow and read its
summaryandinputs.Result You know what it achieves and what you must supply to start.
Read the steps in order, looking only at
operationIdandsuccessCriteria.Result That is the sequence and the definition of each step working. The parameter plumbing can wait.
Read the workflow's
outputs.Result You know what you are left holding when it finishes, which is usually the thing you actually wanted.
The one habit worth forming is treating successCriteria as the real documentation. A step's description says what it is for; its criterion says what counts as having done it, and those two disagree more often than anyone would like.
Limits#
- Arazzo describes sequences of API calls. It is not a workflow engine, has no runtime and schedules nothing.
- It inherits whatever the underlying API can do. A description cannot make an operation idempotent or a failure recoverable.
- Tool support is thinner than OpenAPI's, so a published document is often read by people before it is read by generators.
- Only public, unauthenticated sequences are worth publishing this way. A workflow across authenticated endpoints belongs in the documentation for the audience that can call them.
Questions#
Is Arazzo a replacement for OpenAPI?
No — it depends on it. An Arazzo document points at one or more OpenAPI descriptions in sourceDescriptions and names operations defined there. Without the OpenAPI document there is nothing for the steps to refer to.
Can I run Connect's Arazzo workflows directly?
Only with a client that speaks Arazzo; Connect does not execute them for you. The file's practical value is that the intended order and the success criteria are written down, so a client — or a person — can follow them without guessing.
Why publish workflows for an API with five paths?
Because the order is the part that gets misused. Searching and answering from the summary, or claiming a capability without reading the status manifest, are both easy mistakes that a written sequence prevents.