Software Development Kit
The ExaWorks SDK aims to make workflow technologies easier to deploy, build upon in diverse applications, leverage multiple workflow systems for the same application, and interoperate with external systems. This will democratize access to increasingly hardened, scalable, and portable workflow technologies, components, and solutions to typical problems.
The SDK is implemented via a community-based approach. We follow an open community-based design process in which all artifacts are tracked using an open process on GitHub. We have defined community policies for inclusion of technologies in the SDK to ensure minimum standard software quality practices for reliable deployment and use, modeled on E4S. We have defined a Fork+Pull model-based GitHub development workflow and and GitHub Actions-based continuous integration testing and deployment for SDK components.
Importantly, we aim for the SDK to facilitate progressively advanced levels of interoperation among the tools. We define three interoperability levels as follows:
- Level 0: Technologies can be packaged together: A basic container or other deployment system can support technologies in the same environment.
- Level 1: Technologies can interoperate: A single workflow solution can use features from two or more systems which use tool-specific interfaces.
- Level 2: Sustainable interoperability: Users can perform deep customization of workflow system behavior, choosing from and composing tools that interoperate through the common APIs.
See more: ExaWorkds SDK documentation.