Dynamic Workflows: Scaling Durable Execution for Multi-Tenant Platforms
Introduction
When Cloudflare launched Workers eight years ago, it was a simple platform for individual developers. Since then, the ecosystem has evolved dramatically. Today, platforms not only build directly on Workers but also empower their own customers to deploy code through multi-tenant applications. We see AI agents writing and running their own tools, SaaS platforms where each tenant's business logic is dynamic TypeScript, and CI/CD products where every repository defines its own pipeline. To support this shift, Cloudflare introduced primitives for dynamic compute, storage, and source control. Now, with Dynamic Workflows, we bring the same flexibility to durable execution.

Dynamic Deployment: The Foundation
Compute: Dynamic Workers
In the Dynamic Workers open beta, platforms gained a clean primitive for compute: hand the Workers runtime some code at runtime, and it returns an isolated, sandboxed Worker on the same machine in single-digit milliseconds. This enables per-tenant, per-request execution without pre-deployment.
Storage: Durable Object Facets
Durable Object Facets extended the same idea to storage. Each dynamically loaded app can have its own SQLite database, spun up on demand, with the platform acting as a supervisor. This ensures isolated, on-demand data per tenant.
Source Control: Artifacts
Artifacts provide a Git-native, versioned filesystem that can be created by the tens of millions—one per agent, per session, or per tenant. Together, these three pillars give platforms dynamic deployment for compute, storage, and source control.
The Gap Between Durable and Dynamic Execution
What Is Durable Execution?
Cloudflare Workflows is our durable execution engine. It transforms a run(event, step) function into a resilient program where every step survives failures, can sleep for hours or days, waits for external events, and resumes exactly where it left off. It's ideal for onboarding flows, video transcoding, multi-stage billing, long-running agent loops—and with Workflows V2, it supports up to 50,000 concurrent instances and 300 new instances per second per account.
The Static Binding Problem
However, Workflows had a built-in assumption: the workflow code must be part of your deployment. Your wrangler.jsonc includes a block that binds a single class to the Workflows engine. One binding, one class per deploy. This works fine when you own all the code, but breaks when you need to let each customer run their own workflow. For example, an AI platform that writes TypeScript per tenant, a CI/CD product with per-repo pipelines, or an agent SDK where each agent creates its own durable plan. In these cases, there is no single class to bind.

Dynamic Workflows: Bridging the Gap
Dynamic Workflows solves this by making workflows a dynamic primitive. Just as Dynamic Workers allowed platforms to inject compute code at runtime, Dynamic Workflows lets you hand the engine a workflow definition per tenant, per agent, or per request. The engine then creates a durable, isolated workflow instance that persists across failures and long waits—without requiring a pre-deployed class.
- Per-tenant durability: Each tenant gets its own workflow logic, complete with step retries and state persistence.
- Runtime flexibility: Workflow code can be generated by AI, uploaded by customers, or defined in CI/CD configs.
- Seamless integration: Dynamic Workflows works alongside Dynamic Workers, Durable Object Facets, and Artifacts, forming a complete stack for building multi-tenant platforms.
For instance, an agent SDK can now have each agent write its own durable workflow plan. A CI/CD platform can let every repository define its pipeline workflow dynamically. And an AI app can generate workflows on the fly, all with the same reliability as static workflows.
Conclusion: Completing the Dynamic Stack
Dynamic Workflows is the missing piece. With compute, storage, source control, and now durable execution all available as dynamic primitives, platforms can fully embrace multi-tenant code deployment. Developers get the power of durable execution without being forced into a static deployment model. Whether you're building the next agent framework, a SaaS platform, or a CI/CD product, Dynamic Workflows gives your customers the freedom to define their own business logic—safe, scalable, and durable.
Related Articles
- How to Adopt Docker Hardened Images: A Step-by-Step Guide for Secure Deployments
- Cloudflare Unveils Dynamic Workflows: Durable Execution for Multi-Tenant, AI-Driven Platforms
- The .de DNSSEC Meltdown: Lessons from a TLD Signing Failure
- How to Set Up Centralized Cross-Account Safeguards in Amazon Bedrock
- Kubernetes v1.36: Enhanced Staleness Detection and Controller Observability
- Kubernetes 1.36: Solving Controller Staleness with Smarter Caching and Enhanced Visibility
- 8 Essential Insights into Microsoft’s Sovereign Private Cloud Scaling with Azure Local
- 3 Essential Customization Options for Cloud Provider Observability in Grafana Cloud