Skip to main content

Kutlass Support for Serverless Workflow Specification

Below is a summary of the support level for the Serverless Workflow Specification in Kutlass. The support levels are categorized as follows:

  • Full Support: Fully implemented and tested.
  • 🚧 Partial Support: Implemented but with limitations or not fully tested.
  • 📅 Planned Support: Implementation is planned but not yet started.
  • No Support: Currently, there are no plans to implement.

Note that these support levels are specific to the v0.8 release of the Serverless Workflow Specification and may change in future releases.

States

Below are the support levels for various state types in the Serverless Workflow Specification:

State Type
Support Level
Event State
Operation State
Switch State
🚧
   Data-based
   Event-based
📅
Parallel State
Inject State
ForEach State
Callback State
📅

Functions

Function Type
Support Level
gRPC
RESTful 1
🚧
AsyncAPI
📅
GraphQL
📅
OData
📅
  1. Support for GET and POST Verbs. Planned support for others as necessary

Events, Workflows, and Retries

Category
Support Level
Events 1
Retries
Timeouts
Errors
📅
Workflow Expressions
Subflows (Sub-workflows)
Data Filtering
  1. Full support for events is limited to the server version of Kutlass

Authentication and Security

Type
Support Level
Basic Authentication
Bearer Token
OAuth2
📅
Constants
Secrets
Metadata
📅

Custom Functions

In addition to the built-in functions provided by the Serverless Workflow Specification, Kutlass also support custom functions, which are defined with the following format:

operation: <custom-function-type>#<custom-function-spec>

where <custom-function-type> is the type of the custom function and <custom-function-spec> is the specification for the custom function.

rpc-reflection

The rpc-reflection custom function type allows you to call a gRPC service using reflection. This function is useful for dynamically discovering and invoking gRPC services at runtime.

- name: <function name>
operation: rpc-reflection#<URI_to_Service>#<Service_Name>#<Service_Method_Name>
type: custom

Note that the rpc-reflection custom function type requires the gRPC reflection service to be enabled on the gRPC server. For more information on enabling the gRPC reflection service, see the gRPC documentation.

rpc-reflection over local unix socket

Kutlass also supports calling gRPC services over local unix sockets. This is useful for scenarios where the gRPC server is running on the same machine as Kutlass and you want to avoid network overhead.

- name: <function name>
operation: rpc-reflection#</path/to/unix/socket>#<Service_Name>#<Service_Method_Name>
type: custom

Note that the path to the unix socket must be accessible by the Kutlass process.

Others

Kutlass can also be extended to support other custom function types as needed. If you have a specific custom function type that you would like to see supported in Kutlass, please reach out to us with your requirements at support@kuberkai.com.

We have worked with companies to add custom function types for calling internal APIs, invoking legacy systems, and integrating with proprietary services. If you have a similar use case, we would be happy to work with you to add support for your custom function type in Kutlass.