From fe88073bd7380422cde574800f6dc3cf25006fa3 Mon Sep 17 00:00:00 2001 From: Charles d'Avernas Date: Mon, 10 Mar 2025 14:55:11 +0100 Subject: [PATCH] Add a new file that compares the Serverless Workflow to other popular DSLs Signed-off-by: Charles d'Avernas --- README.md | 5 ++-- comparison.md | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 comparison.md diff --git a/README.md b/README.md index 10348338..778a9acf 100644 --- a/README.md +++ b/README.md @@ -112,8 +112,9 @@ It is a member project of the [CNCF Serverless Working Group](https://github.com The documentation for Serverless Workflow includes: -- [**DSL**](dsl.md): Documents the fundamentals aspects and concepts of the Serverless Workflow DSL -- [**DSL Reference**](dsl-reference.md): References all the definitions used by the Serverless Workflow DSL +- [**DSL**](dsl.md): Documents the fundamentals aspects and concepts of the Serverless Workflow DSL. +- [**DSL Reference**](dsl-reference.md): References all the definitions used by the Serverless Workflow DSL. +- [**Comparison**](comparison.md): See how Serverless Workflow compares to other DSLs. - [**Examples**](./examples/README.md): A collection of practical examples demonstrating specific features and functionalities of Serverless Workflow. - [**Use Cases**](./use-cases/README.md): Detailed use cases illustrating how Serverless Workflow can be applied in various real-world scenarios. diff --git a/comparison.md b/comparison.md new file mode 100644 index 00000000..d438cf89 --- /dev/null +++ b/comparison.md @@ -0,0 +1,83 @@ +# Workflow Comparison + +This document provides a detailed comparison of various workflow orchestration platforms, including **Serverless Workflow**, **AWS Step Functions**, **Google Workflows**, **Argo Workflows**, **BPMN Workflows**, **Prefect**, and **Dagster**. The comparison highlights the key features, pricing models, and the data manipulation capabilities of each platform. This guide aims to help you understand the core strengths and limitations of each platform and assist you in selecting the best workflow engine based on your use case. + +This comparison is intended for general informational purposes only. While every effort has been made to ensure accuracy, each workflow technology has its own unique features and capabilities. The descriptions provided are based on **out-of-the-box features** as of the latest available documentation. Some features may require additional configuration, extensions, or integrations. Users should verify specific features with the official documentation of each platform to ensure compatibility with their use cases. + +--- + +## Overview + +In this section, we provide a high-level summary of each platform's key attributes, including core focus, definition language, ownership model, and pricing structure. This overview helps you understand the fundamental differences and similarities between the platforms, allowing you to evaluate which one best fits your needs and organizational requirements. + +| Trait | Serverless Workflow | AWS Step Functions | Google Workflows | Argo Workflows | BPMN Workflows | Prefect | Dagster | +|----------------------------------|:-------------------:|:------------------:|:----------------:|:--------------:|:--------------:|:-------:|:-------:| +| **Core Focus** | Event-driven & cloud-agnostic workflow orchestration | AWS service orchestration | Google Cloud service orchestration | Kubernetes-native workflow automation | Business process automation | Data pipeline orchestration | Data pipeline orchestration | +| **Definition Language** | JSON/YAML | JSON | YAML | YAML | BPMN XML | Python | Python | +| **Ownership** | Open-Source (CNCF) | Proprietary (AWS) | Proprietary (Google) | Open-Source (CNCF) | Open-Source (BPMN Standard) | Open-Source (Core) | Open-Source (Core) | +| **Pricing Model** | Free | Paid | Paid | Free | Free | Free | Free | +| **Cloud Integrations** | Agnostic | AWS | Google Cloud | Agnostic | Agnostic | Agnostic | Agnostic | +| **Vendor Lock-In** | No | Yes | Yes | No | No | No | No | +| **Portability** | High | Low | Low | High | High | High | High | +| **Use Cases** | Event-driven processes, microservices orchestration, ETL, data transformation | AWS service automation, microservices coordination | Google Cloud service automation, API workflows | CI/CD, ML pipelines, Kubernetes-native workflows | Business process automation, human-centric workflows | ETL, data transformation, data pipeline orchestration | ETL, analytics, machine learning workflows | +| **Extensibility** | High | Limited | Limited | High | High | High | High | +| **Data Transformation Language** | jq, JavaScript | JSON Path | - | - | - | Python | Python | +| **Business Logic Support** | High | Medium | Medium | High | High | High | High | +| **Data Lineage** | Workflow and task level metadata, built-in logs | No native data lineage tracking | No native data lineage tracking | Workflow artifacts, limited data lineage capabilities | Process history tracking; manual tracing required | Data lineage tracking with extensive visualization and querying tools | Data lineage tracking with extensive visualization and querying tools | + +--- + +## Features + +This section compares the core features of each platform, including data handling, execution control, event processing, and integration capabilities. We evaluate how each platform supports critical workflow orchestration functionalities, helping you assess their suitability for various use cases. + +| Feature | Serverless Workflow | AWS Step Functions | Google Workflows | Argo Workflows | BPMN Workflows | Prefect | Dagster | +|------------------------------|:-------------------:|:------------------:|:----------------:|:--------------:|:--------------:|:-------:|:-------:| +| **Retries** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| **Timeouts** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| **Error Handling** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| **Error Propagation** | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | +| **Parallel Execution** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| **Iterative Execution** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| **Subflow Execution** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| **Conditional Execution** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| **Lifecycle Reporting** | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | +| **Event Emission** | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | +| **Event Correlation** | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | +| **Event Streaming** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| **Complex Event Processing** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| **Custom Execution Units** | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | +| **Execution Interception** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| **OpenAPI Execution** | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | +| **AsyncAPI Execution** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| **HTTP Execution** | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | +| **GRPC Execution** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| **Script Execution** | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ | +| **Container Execution** | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | +| **Data Filtering** | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | +| **Data Mutation** | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | +| **Data Context Management** | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | +| **Event-based Triggering** | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | +| **CRON-based Triggering** | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | +| **Delayed Triggering** | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | + +--- + +## Key Takeaways + +- **Event-Driven & Cloud-Agnostic**: **Serverless Workflow** shines with its **cloud-agnostic** design, enabling seamless orchestration across multiple cloud providers and on-prem environments. Whether you're running workflows in AWS, GCP, or any other cloud, it adapts to your infrastructure. + +- **Advanced Event Handling**: **Serverless Workflow** excels in **event-driven orchestration**, supporting **event streaming**, **complex event processing**, and **event correlation**, out of the box. This makes it an ideal choice for dynamic, event-driven architectures, offering real-time data processing capabilities that many other platforms lack. + +- **Flexible Data Manipulation**: With full support for **runtime expressions**, **Serverless Workflow** enables advanced data filtering, mutation, and evaluation using expression languages like **JavaScript** and **jq**, giving you the power to manipulate and transform data directly within workflows. + +- **Scalability & Extensibility**: Built for scalability, **Serverless Workflow** integrates effortlessly into microservice architectures and supports custom execution units and extensions. You can define and extend workflows as per your needs, enabling customized workflows that grow with your business. + +- **No Vendor Lock-In**: Unlike proprietary services, **Serverless Workflow** is open-source and cloud-agnostic, ensuring **no vendor lock-in**. You have full control over deployment and execution, allowing you to avoid reliance on a single cloud provider. + +- **Robust Monitoring & Reporting**: With built-in **lifecycle reporting**, **Serverless Workflow** provides comprehensive insights into your workflow execution. Real-time monitoring, task-level metadata, and detailed logs help you maintain visibility and ensure smooth operations. + +**Serverless Workflow** stands out as the ideal solution for businesses seeking flexibility, scalability, and advanced event-driven processing without the constraints of proprietary platforms. Whether you are orchestrating complex workflows, integrating cloud services, or managing large-scale data transformations, **Serverless Workflow** is built to scale with your needs and help you stay ahead. + +--- +