What is Serverless Workflow?
Serverless Workflow is 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. Say goodbye to convoluted coding and platform dependencies—now, crafting powerful workflows is effortlessly within reach for everyone!Serverless Workflow is a Cloud Native Computing Foundation (CNCF) Sandbox level project, approved on July 14, 2020.
Key Benefits
Easy to Use
Designed for universal understanding, enabling 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
Integrate with service-oriented architectures, interacting with various services over standard protocols like HTTP, gRPC, OpenAPI, AsyncAPI, and more
FaaS Centric
Seamlessly invoke functions hosted on various platforms, promoting a function-as-a-service (FaaS) paradigm and enabling microservices architectures
Fault Tolerant
Easily define error handling strategies to manage and recover from errors 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
Additional Features
Timely
Define timeouts for workflows and tasks to manage execution duration effectively, ensuring your processes don’t run indefinitely.Interoperable
Integrates seamlessly with different services and resources across platforms, making it ideal for heterogeneous environments.Robust
Offers features such as conditional branching, event handling, and looping constructs to handle complex business logic.Scalable
Promotes code reusability, maintainability, and scalability across different environments, from development to production.Design Philosophy
The Serverless Workflow DSL is crafted with a design philosophy that prioritizes:- Linguistic fluency for enhanced readability and understanding
- Imperative verbs to convey actions directly and clearly
- Implicit default behaviors to reduce redundancy and streamline workflow definitions
- Flexibility over strong-typed enumerations for enhanced extensibility
- Universally understood terms to improve accessibility and comprehension
The DSL allows both inline declaration of components or the creation of reusable elements, granting flexibility in workflow composition.
Priority of Constituencies
Inspired by the Priority of Constituencies principle from the W3C Design Principles, Serverless Workflow prioritizes:- Authors: People authoring and reading workflows
- Operators: People running and operating a runtime implementation
- Implementors: People implementing a specification-compliant runtime
- Specification writers: People working on the specifications
Ecosystem Components
The Serverless Workflow ecosystem encompasses a comprehensive suite of components:DSL
The core Domain Specific Language defining the fundamental syntax and semantics
SDKs
Software Development Kits for .NET, Go, Java, PHP, Python, Rust, and TypeScript
Runtimes
Dedicated environments for executing workflows, including Apache KIE SonataFlow, Synapse, and more
Tooling
Visual Studio Code extension and other utilities to enhance the development experience
Next Steps
Quick Start
Create your first workflow in minutes
Core Concepts
Learn about workflows, tasks, events, and data flow