feat: add competitor benchmark framework for WAC performance#8708
Draft
rubenfiszel wants to merge 3 commits intomainfrom
Draft
feat: add competitor benchmark framework for WAC performance#8708rubenfiszel wants to merge 3 commits intomainfrom
rubenfiszel wants to merge 3 commits intomainfrom
Conversation
… main Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Benchmark Windmill's workflow-as-code against 6 competitors: Temporal, Inngest, Restate, Kestra, Prefect, and Airflow. Each platform runs an equivalent 3-step sequential workflow with inline step execution. Measures cold start, single-execution latency (median + P95), throughput, and per-step overhead. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Deploying windmill with
|
| Latest commit: |
adbf472
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://570a343a.windmill.pages.dev |
| Branch Preview URL: | https://wac-competitor-research.windmill.pages.dev |
Comprehensive handoff document covering architecture, decisions, gotchas, and potential improvements for the competitor benchmark suite. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a reproducible benchmark framework that compares Windmill's workflow-as-code performance against 6 competitors: Temporal, Inngest, Restate, Kestra, Prefect, and Apache Airflow.
Each platform runs an equivalent 3-step sequential workflow with inline step execution. The harness measures cold start, single-execution latency (median + P95), throughput under concurrency, and per-step orchestration overhead.
Results (on local dev machine, 100 latency samples, 200 throughput batch)
Windmill uses
step()(inline execution, no child jobs) — architecturally equivalent to what Restatectx.run(), Inngeststep.run(), and others do. With 10 workers andSLEEP_QUEUE=50, Windmill achieves the lowest latency and highest throughput among queue-based systems.Changes
benchmarks/competitors/— Full benchmark framework (Deno TypeScript)types.ts—CompetitorAdapterinterface and result typeslib/— Docker lifecycle, timing, statistics, result serializationcompetitor_harness.ts— Main orchestrator (setup → deploy → test → teardown)competitor_suite.ts— CLI entrypointcompetitor_graphs.ts— SVG bar chart generationwindmill/— WACstep()with 10 workers,SLEEP_QUEUE=50temporal/— TypeScript SDK withproxyActivities(), 10 concurrent tasksinngest/—step.run()with 10 queue workersrestate/—ctx.run()(in-process)kestra/—io.kestra.plugin.core.debug.Returntasksprefect/— Python@task+@flowwith.serve()airflow/—PythonOperatorDAG with LocalExecutor.github/workflows/benchmark-competitors.yml— Weekly CI on ubicloud-standard-8Test plan
deno run -A benchmarks/competitors/competitor_suite.ts --competitors windmill --latency-samples 10 --throughput-batch 20 --output-dir ./resultsdeno run -A benchmarks/competitors/competitor_suite.ts./results/deno run -A --allow-import benchmarks/competitors/competitor_graphs.ts -c benchmarks/competitors/competitor_graphs_config.jsonGenerated with Claude Code
Summary by cubic
Add a reproducible benchmark framework to compare Windmill WAC performance against Temporal, Inngest, Restate, Kestra, Prefect, and Airflow. Includes a Deno-based harness, per-competitor Docker setups, a CLI, SVG chart generation, weekly CI, and new docs for continuation.
competitor_suite.tsto run all or selected competitors with configurable sample and batch sizes..github/workflows/benchmark-competitors.yml) scheduled for Mondays 06:00 UTC onubicloud-standard-8.backend/write_latest_ee_ref.shadds--mainto pin the EE ref to the latestmain.benchmarks/competitors/README.mdfor setup and usage, andCONTEXT.mdwith architecture, decisions, gotchas, and next steps.Written for commit adbf472. Summary will update on new commits.