https://app.windmill.dev/scripts/get/dae90ddc108ce257?workspace=windmill-labs#disable_automatic_renewal=false&send_invoice_directly=true&discount_duration=%221+year%22&discount=0&frequency=%22monthly%22&seats=1&vcpus=2&plan=%22selfhosted_ee%22&stripe_customer_data=%7B%22label%22%3A%22New+stripe+customer%22%2C%22email%22%3A%22%22%2C%22address%22%3A%7B%22line1%22%3A%22%22%2C%22postal_code%22%3A%22adsadas%22%2C%22state%22%3A%22%22%2C%22city%22%3A%22%22%7D%2C%22tax_info%22%3A%7B%22value%22%3A%22%22%7D%7D&is_quote=false&contact_email=%22bar%40acme%22&company_name=%22acme%22@everyone Windmill is the fastest workflow engine but many times the comparison with other workflow engines was stuck on low-code vs full code flows. I'm proud to release the ALPHA of: **Workflow-as-Code v2 — Write workflows as plain code** We completely rebuilt Workflow-as-Code from the ground up. Instead of a visual flow builder, you write your entire workflow as a regular TypeScript or Python script — with all the reliability of Windmill's execution engine behind it. ``` import { task, step, sleep, waitForApproval, workflow } from "windmill-client"; const process = task(async (x: string) => `processed: ${x}`); export const main = workflow(async (x: string) => { const a = await process(x); const urls = await step("get_urls", () => getResumeUrls()); await sleep(60); await waitForApproval({ timeout: 3600 }); return { processed: a }; }); ``` Each task() call runs as a separate checkpointed job — if your workflow fails halfway through, completed steps are skipped on retry. step() checkpoints inline code without spawning a child job. sleep() and waitForApproval() suspend server-side without holding a worker. What's new: - Direct function calls — no more string-based step references or passing context objects. Just wrap your functions with task() and call them normally - Module support — split your workflow across multiple files with taskScript("./helper.ts"), each module gets its own editor tab - Parallel execution — Promise.all() / asyncio.gather() just works - Full primitive set — task, taskScript, step, sleep, waitForApproval, getResumeUrls - Python & TypeScript — both languages supported with idiomatic APIs (@task() decorator in Python) - Live timeline — real-time visualization of step execution, durations, and status in the UI Available now in v1.652+. https://www.windmill.dev/docs/core_concepts/workflows_as_code
rubenf · 2d ago
We're live here https://discord.com/channels/930051556043276338/1278977038430240813
henri-c · 2w ago
Infrastructure as code
rubenf · 2mo ago