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 | 📅 |
- 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 | ✅ |
- 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.