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:
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
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.