id: provisionorder
name: Provision Order
timeouts:
workflowExecTimeout: PT1M
autoRetries: true
states:
- name: Start Provisioning
type: event
onEvents:
- eventRefs:
- New Order Cloud Event
actions:
- functionRef:
refName: Provisioning Rest Function
arguments:
order: "${ .order }"
nonRetryableErrors:
- Invalid Order Error
onErrors:
- errorRef: Invalid Order Error
end:
continueAs: invalidorderworkflow
end:
produceEvents:
- eventRef: Order Provisioned Cloud Event
id: storefiles
name: Store files
states:
- name: Ask User To Upload
type: callback
action:
functionRef: User files upload
eventRef: Uploads Completed CloudEvent
transition: Check Uploads
- name: Check Uploads
type: switch
dataConditions:
- condition: "${ .files | length > 0 }"
transition: Store Files
defaultCondition:
end: true
- name: Store Files
type: foreach
inputCollection: "${ .files }"
batchSize: 10
timeouts:
actionExecTimeout: PT10S
actions:
- subFlowRef: storefiletos3workflow
end: true
Great @InfoQ article mentioning Serverless Workflow specification and the importance of using standards managed by vendor-neutral foundation such as @CloudNativeFdn https://t.co/YkropN9GNW
— ServerlessWorkflow (@CNCFWorkflow) August 19, 2021
As someone with BPMN 2.0 background, I'd say @CNCFWorkflow and the tooling around it with support in @Code is coming together quite nicely. Like the simplicity and clean language spec, really well done IMO. 40 lines of simple YAML for a simple Approval process, sweet.#serverless pic.twitter.com/yMMIV2k1Vs
— Ralf Mueller (@ralf_mueller) May 26, 2021