Skip to content

Commit

Permalink
Issue-589 Holistic review of non-quarkus core concepts guides (#615)
Browse files Browse the repository at this point in the history
* Issue-589 Holistic review of non-quarkus core concepts guides

* Update serverlessworkflow/modules/ROOT/pages/core/cncf-serverless-workflow-specification-support.adoc

Co-authored-by: Tomáš David <[email protected]>

---------

Co-authored-by: Tomáš David <[email protected]>
  • Loading branch information
barboras7 and tomasdavidorg authored Apr 8, 2024
1 parent 76d214e commit 0f4831a
Showing 1 changed file with 57 additions and 57 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
// links
:quarkus_config_guide_url: https://quarkus.io/guides/config-reference

This document describes the information about the implementation of the link:{spec_website_url}[Cloud Native Computing Foundation (CNCF) Serverless Workflow] specification. {product_name} implements version link:{spec_doc_url}[{spec_version}] of the Serverless Workflow specification.
This document provides an overview of how SonataFlow implements the link:{spec_website_url}[Cloud Native Computing Foundation (CNCF) Serverless Workflow] specification. {product_name} implements version link:{spec_doc_url}[{spec_version}] of the Serverless Workflow specification.

The following table shows the implementation status for each Serverless Workflow specification feature.

Expand All @@ -23,13 +23,13 @@ specification.
| Icon | Description

| emoji:full_moon[]
| Fully implemented feature and compliant with the Serverless Workflow specification
| Feature fully implemented and compliant with the Serverless Workflow specification

| emoji:last_quarter_moon[]
| Partially implemented feature
| Feature partially implemented

| emoji:construction[]
| Not implemented
| Feature not implemented

|===

Expand All @@ -38,129 +38,125 @@ specification.
|===
| Feature | Status | Reference

| <<states>>
| <<compensation>>
| emoji:full_moon[]
| link:{spec_doc_url}#workflow-states[Workflow States]
| link:{spec_doc_url}#Workflow-Compensation[Workflow Compensation]

| <<functions>>
| emoji:last_quarter_moon[]
| link:{spec_doc_url}#Function-Definition[Function Definition]
| <<constants>>
| emoji:full_moon[]
| link:{spec_doc_url}#workflow-constants[Workflow Constants]

| <<error_handling>>
| emoji:full_moon[]
| link:{spec_doc_url}#Workflow-Error-Handling[Workflow Error Handling]

| <<events>>
| emoji:last_quarter_moon[]
| link:{spec_doc_url}#Event-Definition[Event Definition]

| <<workflow_data>>
| emoji:full_moon[]
| link:{spec_doc_url}#Workflow-Data[Workflow Data]

| <<expressions>>
| emoji:full_moon[]
| link:{spec_doc_url}#Workflow-Expressions[Workflow Expressions]

| <<error_handling>>
| emoji:full_moon[]
| link:{spec_doc_url}#Workflow-Error-Handling[Workflow Error Handling]
| <<functions>>
| emoji:last_quarter_moon[]
| link:{spec_doc_url}#Function-Definition[Function Definition]

| <<retries>>
| emoji:construction[]
| link:{spec_doc_url}#Retry-Definition[Retry Definition]

| <<timeouts>>
| emoji:last_quarter_moon[]
| link:{spec_doc_url}#workflow-timeouts[Workflow Timeouts]

| <<compensation>>
| <<secrets>>
| emoji:full_moon[]
| link:{spec_doc_url}#Workflow-Compensation[Workflow Compensation]
| link:{spec_doc_url}#workflow-secrets[Workflow Secrets]

| <<constants>>
| <<workflow_data>>
| emoji:full_moon[]
| link:{spec_doc_url}#workflow-constants[Workflow Constants]
| link:{spec_doc_url}#Workflow-Data[Workflow Data]

| <<secrets>>
| <<states>>
| emoji:full_moon[]
| link:{spec_doc_url}#workflow-secrets[Workflow Secrets]
| link:{spec_doc_url}#workflow-states[Workflow States]

| <<timeouts>>
| emoji:last_quarter_moon[]
| link:{spec_doc_url}#workflow-timeouts[Workflow Timeouts]
|===

[[states]]
== States

The link:{spec_doc_url}#parallel-state[Parallel State] of the workflow states feature works in a single thread. This means that a Parallel State does not create one thread per branch, simulating an actual parallel behavior.

If an exclusive property is set to `false`, you should not use the link:{spec_doc_url}#event-state[Event State] of the workflow states feature as the starting state. In case, if it is specified that way, then it will behave as if an exclusive property was set to `true`.
If an `exclusive` property is set to `false`, you should not use the link:{spec_doc_url}#Event-State[Event State] of the workflow states feature as the starting state. In case that it is specified that way, it will behave as if an `exclusive` property was set to `true`.

[NOTE]
====
{product_name} does not support the link:{spec_doc_url}#sleep-state[Sleep State] feature. However, this feature will be supported in a future release.
====

The following table shows all the workflow states that {product_name} supports in the Serverless Workflow specification {spec_version} version:
The following table shows the implementation status in {product_name} of workflow states of the Serverless Workflow specification {spec_version} version:

.Workflow States implementation status
[cols="35%,30%,35%", options="header"]
|===
| State | Status | Reference

| Callback
| emoji:full_moon[]
| link:{spec_doc_url}#Callback-State[Callback State]

| Event
| emoji:last_quarter_moon[]
| link:{spec_doc_url}#Event-State[Event State]

| Operation
| ForEach
| emoji:full_moon[]
| link:{spec_doc_url}#Operation-State[Operation State]
| link:{spec_doc_url}#ForEach-State[ForEach State]

| Switch
| Inject
| emoji:full_moon[]
| link:{spec_doc_url}#Switch-State[Switch State]
| link:{spec_doc_url}#Inject-State[Inject State]

| Sleep
| emoji:construction[]
| link:{spec_doc_url}#sleep-state[Sleep State]
| Operation
| emoji:full_moon[]
| link:{spec_doc_url}#Operation-State[Operation State]

| Parallel
| emoji:last_quarter_moon[]
| link:{spec_doc_url}#Parallel-State[Parallel State]

| Inject
| emoji:full_moon[]
| link:{spec_doc_url}#Inject-State[Inject State]

| ForEach
| emoji:full_moon[]
| link:{spec_doc_url}#ForEach-State[ForEach State]
| Sleep
| emoji:construction[]
| link:{spec_doc_url}#sleep-state[Sleep State]

| Callback
| Switch
| emoji:full_moon[]
| link:{spec_doc_url}#Callback-State[Callback State]
| link:{spec_doc_url}#Switch-State[Switch State]
|===

[[functions]]
== Functions

The following table shows the status of the workflow functions that {product_name} supports:
The following table shows the implementation status of the workflow functions that {product_name} supports:

.Workflow Functions implementation status
[cols="35%,30%,35%", options="header"]
|===
| Function | Status | Reference

| REST
| emoji:full_moon[]
| link:{spec_doc_url}#using-functions-for-restful-service-invocations[Using Functions for RESTful Service Invocations]
| AsyncAPI
| emoji:construction[]
| link:{spec_doc_url}#using-functions-for-async-api-service-invocations[Using Functions for AsyncAPI Service Invocations]

| RPC
| Custom
| emoji:full_moon[]
| link:{spec_doc_url}#using-functions-for-rpc-service-invocations[Using Functions for RPC Service Invocations]
| link:{spec_doc_url}#defining-custom-function-types[Defining custom function types]

| Expression
| emoji:full_moon[]
| link:{spec_doc_url}#using-functions-for-expression-evaluation[Using Functions for Expression Evaluation]

| AsyncAPI
| emoji:construction[]
| link:{spec_doc_url}#using-functions-for-async-api-service-invocations[Using Functions for AsyncAPI Service Invocations]

| GraphQL
| emoji:construction[]
| link:{spec_doc_url}#using-functions-for-graphql-service-invocations[Using Functions for GraphQL Service Invocations]
Expand All @@ -169,9 +165,13 @@ The following table shows the status of the workflow functions that {product_nam
| emoji:construction[]
| link:{spec_doc_url}#using-functions-for-odata-service-invocations[Using Functions for OData Service Invocations]

| Custom
| REST
| emoji:full_moon[]
| link:{spec_doc_url}#defining-custom-function-types[Defining custom function types]
| link:{spec_doc_url}#using-functions-for-restful-service-invocations[Using Functions for RESTful Service Invocations]

| RPC
| emoji:full_moon[]
| link:{spec_doc_url}#using-functions-for-rpc-service-invocations[Using Functions for RPC Service Invocations]
|===

For additional functions, the Serverless Workflow specification support the `custom` function type, such as `sysout` and `java`. For more information about these custom function types, see xref:core/custom-functions-support.adoc[Custom functions for your {product_name} service].
Expand Down Expand Up @@ -233,7 +233,7 @@ Alternatively, you can use xref:core/understanding-workflow-error-handling.adoc[
[[timeouts]]
== Timeouts

{product_name} has limited support for the timeouts feature, which covers only workflow and event timeouts.
{product_name} has limited support for the timeouts feature, covering only workflow and event timeouts.

For start event state the `exclusive` property is not supported if set to `false`, therefore the timeout is not supported for the event state when starting a workflow.

Expand Down

0 comments on commit 0f4831a

Please sign in to comment.