|
1 | 1 | # Comparisons - BPMN2
|
2 | 2 |
|
3 | 3 | The [Business Process Model and Notation (BPMN)](https://www.omg.org/spec/BPMN/2.0/PDF) defines a flowchart-based
|
4 |
| -DSL for workflows. It is maintained by the [Object Management Group (OMG)](https://www.omg.org/). |
| 4 | +DSL for workflows. It is maintained by the [Object Management Group (OMG)](https://www.omg.org/). |
5 | 5 | The latest BPMN version is [2.0.2](https://www.omg.org/spec/BPMN/2.0.2/), published in 2014.
|
6 | 6 |
|
7 | 7 | BPMN2 defines a graphical notation to specify workflows. This notation can then be shared between tooling and organizations.
|
8 | 8 | The graphical notation is translated into XML, which then can be used for runtime execution.
|
9 | 9 |
|
10 | 10 | For this comparison, we will compare the Serverless Workflow language with the graphical representation of BPMN2,
|
11 |
| -and not its underlying XML representation. The BPMN2 XML is very difficult to understand, quite large for even the smallest workflows, and often not portable between runtimes. |
| 11 | +and not its underlying XML representation. The BPMN2 XML is very difficult to understand, quite large for even the smallest workflows, and often not portable between runtimes. |
12 | 12 | It makes more sense to use its portable graphical notation for comparisons.
|
13 | 13 |
|
14 |
| -Serverless Workflow is a declarative workflow language, represented with JSON or YAML. It currently does not define a graphical notation. However, it can be graphically represented using different flowcharting techniques such as |
15 |
| -UML activity diagrams. The [Serverless Workflow Java SDK](https://github.com/serverlessworkflow/sdk-java#building-workflow-diagram) as well as its [VSCode Extension](https://github.com/serverlessworkflow/vscode-extension) provide means to generate SVG diagrams based on the workflow JSON/YAML. |
| 14 | +Serverless Workflow is a declarative workflow language, represented with JSON or YAML. It currently does not define a graphical notation. However, it can be graphically represented using different flowcharting techniques such as |
| 15 | +UML activity diagrams. The [Serverless Workflow Java SDK](https://github.com/serverlessworkflow/sdk-java#building-workflow-diagram) as well as its [VSCode Extension](https://github.com/serverlessworkflow/vscode-extension) provide means to generate SVG diagrams based on the workflow JSON/YAML. |
16 | 16 |
|
17 | 17 | ## Note when reading provided examples
|
18 | 18 |
|
19 |
| -The BPMN2 graphical notation does not provide details about data inputs/outputs, mapping, and transformation. |
| 19 | +The BPMN2 graphical notation does not provide details about data inputs/outputs, mapping, and transformation. |
20 | 20 | BPMN2 does provide graphical representation for things such as Data Objects. However, most of the examples
|
21 | 21 | available do not use them. Execution semantics such as task and event properties are also not visual.
|
22 |
| -For this reason, the event, function, retry, and data mapping defined in the associated Serverless Workflow YAML are assumed. |
23 |
| - |
| 22 | +For this reason, the event, function, retry, and data mapping defined in the associated Serverless Workflow YAML are assumed. |
24 | 23 |
|
25 | 24 | ## Table of Contents
|
26 | 25 |
|
@@ -264,10 +263,11 @@ name: Execution Timeout Workflow
|
264 | 263 | version: '1.0'
|
265 | 264 | specVersion: '0.7'
|
266 | 265 | start: Purchase Parts
|
267 |
| -execTimeout: |
268 |
| - duration: PT7D |
269 |
| - interrupt: true |
270 |
| - runBefore: Handle timeout |
| 266 | +timeouts: |
| 267 | + workflowExecTimeout: |
| 268 | + duration: PT7D |
| 269 | + interrupt: true |
| 270 | + runBefore: Handle timeout |
271 | 271 | states:
|
272 | 272 | - name: Purchase Parts
|
273 | 273 | type: operation
|
@@ -382,7 +382,7 @@ states:
|
382 | 382 |
|
383 | 383 | This workflow assumes that the input to the workflow includes a maxChecks attribute set to an integer value.
|
384 | 384 |
|
385 |
| -* Note: We did not include the `checkAndReplyToEmail` workflow in this example, which would include the |
| 385 | +* Note: We did not include the `checkAndReplyToEmail` workflow in this example, which would include the |
386 | 386 | control-flow logic to check email and make a decision to reply to it or wait an hour.
|
387 | 387 |
|
388 | 388 | ### Approve Report
|
|
0 commit comments