Skip to content

serverlessworkflow/specification

Repository files navigation

contributions welcome License

Table of Contents

About

Serverless Workflow presents a vendor-neutral, open-source, and entirely community-driven ecosystem tailored for defining and executing DSL-based workflows in the realm of Serverless technology.

The Serverless Workflow DSL is a high-level language that reshapes the terrain of workflow creation, boasting a design that is ubiquitous, intuitive, imperative, and fluent.

Bid farewell to convoluted coding and platform dependencies—now, crafting powerful workflows is effortlessly within reach for everyone!

Key features:

  • Easy to Use: Designed for universal understanding, Serverless Workflow DSL enables users to quickly grasp workflow concepts and create complex workflows effortlessly.
  • Event Driven: Seamlessly integrate events into workflows with support for various formats, including CloudEvents, allowing for event-driven workflow architectures.
  • Service Oriented: The Serverless Workflow DSL empowers developers to seamlessly integrate with service-oriented architectures, allowing them to define workflows that interact with various services over standard application protocols like HTTP, GRPC, OpenAPI, AxsyncAPI, and more.
  • FaaS Centric: Seamlessly invoke functions hosted on various platforms within workflows, promoting a function-as-a-service (FaaS) paradigm and enabling microservices architectures.
  • Timely: Define timeouts for workflows and tasks to manage execution duration effectively.
  • Fault Tolerant: Easily define error handling strategies to manage and recover from errors that may occur during workflow execution, ensuring robustness and reliability.
  • Schedulable: Schedule workflows using CRON expressions or trigger them based on events, providing control over workflow execution timing.
  • Interoperable: Integrates seamlessly with different services and resources.
  • Robust: Offers features such as conditional branching, event handling, and looping constructs.
  • Scalable: Promotes code reusability, maintainability, and scalability across different environments.

Ecosystem

Serverless Workflow ecosystem is hosted by the Cloud Native Computing Foundation (CNCF) and was approved as a Cloud Native Sandbox level project on July 14, 2020.

It encompasses a comprehensive suite of components and tools designed to facilitate the creation, management, and execution of serverless workflows.

  1. DSL (Domain Specific Language): The core of the ecosystem, defining the fundamental syntax and semantics of Serverless Workflow specifications.

  2. CTK (Conformance Test Kit): A set of Gherkin features utilized for both conformance testing and Behavior Driven Design (BDD), ensuring compliance and facilitating testing across implementations.

  3. SDKs (Software Development Kits): These enable developers to interact with serverless workflows in various programming languages, providing functionalities such as reading, writing, building, and validating workflows.

  4. Runtimes: Dedicated environments for executing workflows defined using the Serverless Workflow DSL, ensuring seamless deployment and operation within diverse runtime environments.

  5. Tooling: Additional utilities and resources tailored to enhance the development, debugging, and management of serverless workflows, streamlining the workflow lifecycle from creation to deployment and maintenance.

SDKs

The Serverless Workflow SDKs are essential tools designed to assist developers in consuming, parsing, validating, and testing their workflows utilizing the Serverless Workflow DSL.

These SDKs empower developers to seamlessly integrate serverless workflows into their applications, providing robust support for various programming languages. By offering comprehensive functionality, they streamline the development process and enhance workflow management.

Explore our SDKs for different programming languages:

Don't see your favorite implementation on the list? Shout out to the community about it or, even better, contribute to the ecosystem with a new SDK!

No matter your preferred language, our SDKs provide the tools you need to leverage the power of serverless workflows effectively.

Runtimes

Name About
Apache KIE SonataFlow Apache KIE SonataFlow is a tool for building cloud-native workflow applications. You can use it to do the services and events orchestration and choreography.
Synapse Synapse is a scalable, cross-platform, fully customizable platform for managing and running Serverless Workflows.

Tooling

In order to enhance developer experience with the Serverless Workflow DSL, we provide a Visual Studio Code extension.

The sources of the extension can be found here.

CNCF Landscape

Serverless Workflow project falls under the CNCF "App Definition and Development" category.

It is a member project of the CNCF Serverless Working Group.

CNCF Landscape

Documentation

The documentation for Serverless Workflow includes:

  • DSL: Documents the fundamentals aspects and concepts of the Serverless Workflow DSL
  • DSL Reference: References all the definitions used by the Serverless Workflow DSL

Community

We have a growing community working together to build a community-driven and vendor-neutral workflow ecosystem. Community contributions are welcome and much needed to foster project growth.

See here for the list of community members that have contributed to the specification.

To learn how to contribute to the specification please refer to 'how to contribute'.

If you have any copyright questions when contributing to a CNCF project like this one, reference the Ownership of Copyrights in CNCF Project Contributions.

Communication

Governance

The Serverless Workflow Project Governance document delineates the roles, procedures, and principles guiding the collaborative development and maintenance of the project.

It emphasizes adherence to the CNCF Code of Conduct, defines the responsibilities of maintainers, reviewers, and emeritus maintainers, outlines procedures for their addition and removal, and establishes guidelines for subprojects' inclusion and compliance.

Decision-making processes are consensus-driven, facilitated through structured proposal and discussion mechanisms, with conflict resolution procedures prioritizing amicable resolution.

Overall, the document reflects the project's commitment to transparency, accountability, and inclusive collaboration, fostering an environment conducive to sustained growth and innovation.

See the project's Governance Model here.

Code of Conduct

As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.

We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality.

See the project's Code of Conduct here.

Weekly Meetings

The Serverless Workflow team meets weekly, every Thursday at 9AM ET (USA Eastern Time).

To register for meetings please visit the CNCF Community Calendar.

You can register for individual meetings or for the entire series.

Support

Adoption

If you're using Serverless Workflow in your projects and would like to showcase your adoption, become an Adopter! By joining our community of adopters, you'll have the opportunity to share your experiences, contribute feedback, and collaborate with like-minded individuals and organizations leveraging Serverless Workflow to power their workflows.

Sponsoring

As an open-source project, Serverless Workflow relies on the support of sponsors to sustain its development and growth.

By becoming a sponsor, you'll not only demonstrate your commitment to advancing serverless technologies but also gain visibility within our vibrant community.

Sponsorship opportunities range from financial contributions to in-kind support, and every sponsorship makes a meaningful impact on the project's success and sustainability.

Support our project by becoming a Sponsor.