Skip to 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.

Feature Support Level Notes/Comments
States
- Event State Full Support
- Operation State Full Support
- Switch State Full Support
-- Data-based Switch Full Support
-- Event-based Switch Planned Support
- Sleep State Full Support
- Parallel State Full Support
- Inject State Full Support
- ForEach State Planned Support
- Callback State Planned Support
Functions
- gRPC Full Support
- RESTful Partial Support Support for GET and POST verbs. Planned support for others as-necessary.
- AsyncAPI Planned Support
- GraphQL Planned Support
- OData Planned Support
Events Full Support
Retries Full Support
Timeouts Full Support
Errors Planned Support
Workflow Expressions Full Support
Subflows (Sub-workflows) Full Support
Data Filtering Full Support
Authentication
- Basic Full Support
- Bearer Full Support
- OAuth2 Planned Support
Secrets Full Support
Metadata Planned Support

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.