Skip to content

Arazzo Specification#431

Open
philsturgeon wants to merge 31 commits intobump-sh:mainfrom
philsturgeon:guide/arazzo
Open

Arazzo Specification#431
philsturgeon wants to merge 31 commits intobump-sh:mainfrom
philsturgeon:guide/arazzo

Conversation

@philsturgeon
Copy link
Contributor

@philsturgeon philsturgeon commented Jan 26, 2026

The Arazzo Specification Guide is taking form.

Introduction

  • What is it?
  • History
  • Benefits

Understanding Structure

  • Basic Structure
  • Defining Sources
  • Success and failure
  • Components and references
  • Steps, inputs, outputs
  • Workflows

Working with Arazzo

  • Runtime Expressions

Misc

  • Cheatsheet

@netlify
Copy link

netlify bot commented Jan 26, 2026

Deploy Preview for bump-content-hub ready!

Name Link
🔨 Latest commit c16eb16
🔍 Latest deploy log https://app.netlify.com/projects/bump-content-hub/deploys/699ecdfc9e2a940008458fb3
😎 Deploy Preview https://deploy-preview-431--bump-content-hub.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link
Contributor

@grossyoan grossyoan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi there!

Some small typos/additions on the first pages ready to review. It's a great piece of work 🙏

@philsturgeon philsturgeon changed the title [WIP] Arazzo Specification Arazzo Specification Feb 1, 2026
…zzo.md

Co-authored-by: Yoan Gross <32864409+grossyoan@users.noreply.github.com>
@philsturgeon philsturgeon marked this pull request as ready for review February 1, 2026 19:55
Copy link
Contributor

@grossyoan grossyoan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot for the hard work, Phil 🙏

## Component Types

Arazzo supports several component types, each designed to reduce repetition and make workflows easier to maintain.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We might want to add an "Inputs" title here with a few sentences to have it in the table of contents on the right.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I find your comment completely accurate @grossyoan ler"'s add that subtitle?

Copy link
Member

@Polo2 Polo2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The whole reading is very interesting, we learn a lot about Arazzo specification and use case, with a lot of clear examples and the cheatsheet, well done 👏

I left two suggestions in code example to stick with the specification:

  • clarification with string interpolation and runtime expression (based on sentence "Runtime expressions preserve the type of the referenced value. Expressions can be embedded into string values by surrounding the expression with {} curly braces.")
  • clarification about how component is referenced (favor the full path with $components.)

Beside that, all good to merge, and well done for the huge work 🙌

grossyoan and others added 7 commits February 25, 2026 11:19
…components-and-references.md

Co-authored-by: Polo <32060402+Polo2@users.noreply.github.com>
…components-and-references.md

Co-authored-by: Polo <32060402+Polo2@users.noreply.github.com>
…basic-structure.md

Co-authored-by: Polo <32060402+Polo2@users.noreply.github.com>
…components-and-references.md

Co-authored-by: Polo <32060402+Polo2@users.noreply.github.com>
…defining-sources.md

Co-authored-by: Polo <32060402+Polo2@users.noreply.github.com>
…components-and-references.md

Co-authored-by: Polo <32060402+Polo2@users.noreply.github.com>
Copy link
Member

@Polo2 Polo2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Arazzo ready 🎉


Here the `authHeader` parameter is reused as-is, while `query` and `limit` are defined inline for this one step.

## Referencing inputs
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Referencing inputs
### Referencing inputs


Each input schema can define properties, and use `$ref` to pull in reusable input components mixed in with inline definitions for just that workflow.

## Referencing actions
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Referencing actions
### Referencing actions


Actions are where `reference` really shines: define consistent behavior once, then attach it to any step using `onSuccess` or `onFailure`.

### Success actions
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### Success actions
#### Success actions


Because each success action has criteria, you can attach both and let runtime data decide whether the workflow continues (`goto`) or completes (`end`).

### Failure actions
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


This step reuses the failure actions from earlier: retry on transient server errors, retry more cautiously when rate limited, and then route to a logging step if it still fails.

### Conditional action reuse
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### Conditional action reuse
#### Conditional action reuse

## Component Types

Arazzo supports several component types, each designed to reduce repetition and make workflows easier to maintain.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I find your comment completely accurate @grossyoan ler"'s add that subtitle?

## Component types

Arazzo supports several component types, each designed to reduce repetition and make workflows easier to maintain.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### Inputs

payload:
tripId: $steps.search.outputs.tripId
passengers:
- name: $inputs.passengers[0].name
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's quite unclear for me how runtine expressions when you need to access data within a payload (a payload being an object that is not described by the spec but by the API response or request bodies, parameters or inputs).

From what I understand from the spec it seems this line should be written:

Suggested change
- name: $inputs.passengers[0].name
- name: $inputs.passengers#/0/name

However, I pretty much dislike and disagree with this syntax and Im much more aligned to what you wrote.. Internally at Bump we have defined a custom spec which will allow to use jmespath (or maybe jsonpath) in those expressions so that dot notations work as we could expect.

What do you think? Is this something I misunderstood?


```yaml
inputs:
type: object
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesnt look like an array input (as stated by the title). Can you change the example please?

outputs:
# Extract simple values
bookingId: $response.body.id
customerEmail: $response.body.customer.email
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As stated in a previous comment, Im completely aligned with your dot notation to access payload data. But I dont think it's how arazzo specifies it (even if it isnt really clear)...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants