From 0157a83cd0fd42151c79647a8cc577680b196dba Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Wed, 9 Sep 2026 12:49:23 +0200 Subject: [PATCH] docs: refresh roadmap status --- ROADMAP.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index 4487d0a90..964d1733e 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,6 +1,6 @@ # Elsa Roadmap -Last refreshed: 2026-09-05 (release-status corrections for Elsa 3.8.0) +Last refreshed: 2026-09-09 (post-3.8 Studio BPMN and runtime-admission status) This roadmap is a product direction document, not a fixed release calendar. Elsa is developed through a mix of core maintainer work, customer-funded work, and community contributions, so sequencing can change when real-world demand changes. The intent is stable: make Elsa the most productive, dependable, and extensible workflow platform for the .NET ecosystem. @@ -27,6 +27,7 @@ Legend: `[x]` shipped foundation, `[~]` partially shipped or needs productizatio - [~] State machine Studio semantic authoring is released in `3.8.0`; maintained docs/examples and broader authenticated browser validation remain - [~] Extensible activity output conversion: Core contracts, descriptor discovery, binding validation, and Studio selection/settings UX are released in `3.8.0`; a maintained extension converter catalog remains productization work - [~] Graceful shutdown and interrupted recovery +- [ ] Atomic workflow admission for configured activation strategies across every start path; correlated and singleton policies need an atomic reservation rather than a check-then-act count ([#7948](https://github.com/elsa-workflows/elsa-core/issues/7948), [#8042](https://github.com/elsa-workflows/elsa-core/issues/8042)) - [ ] Full workflow execution recovery UX - [ ] Compensation / saga support - [ ] Variable history tracking @@ -92,7 +93,7 @@ Legend: `[x]` shipped foundation, `[~]` partially shipped or needs productizatio - [ ] Azure Functions / worker-service hosting guidance - [ ] WatchFileSystem and command-line automation activities - [ ] Data pipeline / ETL primitives -- [~] BPMN execution and interchange foundations (included in Core `3.8.0-rc2`; Studio authoring and conformance breadth remain) +- [~] BPMN execution and interchange foundations, with main-only Studio schema types, rendering, import/export, and nested-scope authoring; broader editing, inspection, conformance, and release packaging remain ([elsa-studio#1008](https://github.com/elsa-workflows/elsa-studio/pull/1008)-[#1013](https://github.com/elsa-workflows/elsa-studio/pull/1013)) ## Current Foundations @@ -114,7 +115,7 @@ These are already present in the codebase and should be treated as foundations f - Studio's state-machine designer now has semantic lifecycle slots, a context-aware activity picker, malformed-definition preservation, and nested-designer support through [elsa-studio#958](https://github.com/elsa-workflows/elsa-studio/pull/958) and [elsa-studio#959](https://github.com/elsa-workflows/elsa-studio/pull/959). The semantic-authoring foundation is released in `3.8.0`, with further StateMachine runtime and designer fixes in [Core #8010](https://github.com/elsa-workflows/elsa-core/pull/8010) and [Studio #985](https://github.com/elsa-workflows/elsa-studio/pull/985). Maintained documentation/examples and broader authenticated browser validation still keep the product surface partial. - Core `main` now has extensible output-converter contracts, registration, definition/runtime validation, privacy-safe conversion faults, and an authorized descriptor API through [PR #7902](https://github.com/elsa-workflows/elsa-core/pull/7902). Studio `main` consumes that API with unavailable-state handling, converter selection, and schema-driven settings editing in [elsa-studio#922](https://github.com/elsa-workflows/elsa-studio/pull/922). Converters are opt-in at a variable or workflow-output binding, so the activity output and its diagnostics remain native. This foundation is included in `3.8.0`; a maintained extension converter catalog is still follow-up work ([#7770](https://github.com/elsa-workflows/elsa-core/issues/7770), [elsa-extensions#164](https://github.com/elsa-workflows/elsa-extensions/issues/164)). - ElsaScript DSL and blob storage integration in [`Elsa.Dsl.ElsaScript`](src/modules/Elsa.Dsl.ElsaScript) and [`Elsa.WorkflowProviders.BlobStorage.ElsaScript`](src/modules/Elsa.WorkflowProviders.BlobStorage.ElsaScript). -- Core `main` now contains `Elsa.Bpmn` and `Elsa.Bpmn.Interchange`: a BPMN process container, persisted execution state, activity bindings, message/signal/timer triggers, and analyze/import/export endpoints ([#7938](https://github.com/elsa-workflows/elsa-core/pull/7938), [#7945](https://github.com/elsa-workflows/elsa-core/pull/7945), [#7946](https://github.com/elsa-workflows/elsa-core/pull/7946), [#7954](https://github.com/elsa-workflows/elsa-core/pull/7954), [#7956](https://github.com/elsa-workflows/elsa-core/pull/7956)). The two packages joined Core `3.8.0-rc2` through [#7970](https://github.com/elsa-workflows/elsa-core/pull/7970); publish-time validation, compensation/transaction conformance coverage, and Studio rendering/authoring remain productization work ([#7958](https://github.com/elsa-workflows/elsa-core/pull/7958), [#7960](https://github.com/elsa-workflows/elsa-core/pull/7960), [#7909](https://github.com/elsa-workflows/elsa-core/issues/7909)). +- Core `main` now contains `Elsa.Bpmn` and `Elsa.Bpmn.Interchange`: a BPMN process container, persisted execution state, activity bindings, message/signal/timer triggers, and analyze/import/export endpoints ([#7938](https://github.com/elsa-workflows/elsa-core/pull/7938), [#7945](https://github.com/elsa-workflows/elsa-core/pull/7945), [#7946](https://github.com/elsa-workflows/elsa-core/pull/7946), [#7954](https://github.com/elsa-workflows/elsa-core/pull/7954), [#7956](https://github.com/elsa-workflows/elsa-core/pull/7956)). The two packages joined Core `3.8.0-rc2` through [#7970](https://github.com/elsa-workflows/elsa-core/pull/7970). Studio `main` now adds schema-generated BPMN payload types, a canvas-neutral model and X6 renderer, read-only imported-process viewing, import/export, and nested-process-scope authoring ([elsa-studio#1008](https://github.com/elsa-workflows/elsa-studio/pull/1008), [#1009](https://github.com/elsa-workflows/elsa-studio/pull/1009), [#1010](https://github.com/elsa-workflows/elsa-studio/pull/1010), [#1011](https://github.com/elsa-workflows/elsa-studio/pull/1011), [#1012](https://github.com/elsa-workflows/elsa-studio/pull/1012), [#1013](https://github.com/elsa-workflows/elsa-studio/pull/1013)). This Studio slice landed after `3.8.0` and is not a release claim. Publish-time validation, compensation/transaction and event-subprocess conformance, full element/property editing, element-level instance inspection, configured-host verification, and release packaging remain productization work ([#7958](https://github.com/elsa-workflows/elsa-core/pull/7958), [#7960](https://github.com/elsa-workflows/elsa-core/pull/7960), [#7909](https://github.com/elsa-workflows/elsa-core/issues/7909), [elsa-studio#1000](https://github.com/elsa-workflows/elsa-studio/issues/1000), [elsa-studio#1001](https://github.com/elsa-workflows/elsa-studio/issues/1001), [elsa-studio#1004](https://github.com/elsa-workflows/elsa-studio/issues/1004)). - Core and Studio `main` now provide the paired User Tasks foundation: Core has durable, identity-neutral workflow-bound tasks, authorized lifecycle APIs, guest invitations, workers, and in-memory, EF Core, and VNext persistence; Studio has a capability-gated queue, detail and manager workspace, guest completion page, and polling fallback ([#7955](https://github.com/elsa-workflows/elsa-core/pull/7955), [elsa-studio#941](https://github.com/elsa-workflows/elsa-studio/pull/941)). It landed after `3.8.0-rc2`, so release packaging, Core realtime invalidation, cross-provider conformance coverage, samples, and operational validation remain. - Activity unit testing helpers and guidance in [`src/common/Elsa.Testing.Shared`](src/common/Elsa.Testing.Shared) and [`doc/qa/test-guidelines.md`](doc/qa/test-guidelines.md). - Label infrastructure now spans Core and Studio: [`Elsa.Labels`](src/modules/Elsa.Labels) exposes label and workflow-label endpoints, and [`Elsa.Studio.Labels`](https://github.com/elsa-workflows/elsa-studio/tree/main/src/modules/Elsa.Studio.Labels) adds label management pages plus workflow-definition label editing. Folder views, broader metadata search, and richer organization UX remain roadmap work. @@ -198,7 +199,7 @@ High-value items: - Resolve the MassTransit strategy after the v9 licensing change. [discussion #6583](https://github.com/elsa-workflows/elsa-core/discussions/6583) raises a practical ecosystem risk; Elsa should either provide a clean split or reduce dependency weight through a smaller messaging abstraction. - Clarify Azure Functions and worker-service hosting patterns. [discussion #4707](https://github.com/elsa-workflows/elsa-core/discussions/4707) and [discussion #7420](https://github.com/elsa-workflows/elsa-core/discussions/7420) show demand for non-traditional hosts, Windows services, and serverless-adjacent deployments. - Add data movement and streaming workflow primitives. [#4809](https://github.com/elsa-workflows/elsa-core/issues/4809) frames this as datasets, linked services, transforms, and stream-oriented processing inspired by Azure Data Factory and stream analytics. -- Productize the new BPMN foundation rather than treating BPMN as a distant, unimplemented candidate. Core `3.8.0-rc2` now packages BPMN execution and interchange; the remaining work is compensation/transaction and event-subprocess conformance, final-release validation, and the Studio canvas/binding/inspection experience described in [#7909](https://github.com/elsa-workflows/elsa-core/issues/7909). Keep interoperability commitments explicit until the supported BPMN 2.0 subset has public conformance evidence. +- Productize the BPMN foundation rather than treating BPMN as a distant, unimplemented candidate. Core `3.8.0-rc2` packages execution and interchange, and Studio `main` now has schema-generated types, X6 rendering, import/export, and nested-scope authoring ([elsa-studio#1008](https://github.com/elsa-workflows/elsa-studio/pull/1008)-[#1013](https://github.com/elsa-workflows/elsa-studio/pull/1013)). The next work is compensation/transaction and event-subprocess conformance, configured-host and release validation, full element/property editing, and element-level instance inspection described in [#7909](https://github.com/elsa-workflows/elsa-core/issues/7909). Keep interoperability commitments explicit until the supported BPMN 2.0 subset has public conformance evidence. Recommended success measures: @@ -269,12 +270,12 @@ Recommended success measures: Near term: -1. Finish runtime confidence work: graceful shutdown remaining tasks, recovery clarity, distributed runtime regressions, security documentation, and OIDC recipes. +1. Finish runtime confidence work: graceful shutdown remaining tasks, recovery clarity, atomic admission for configured activation strategies, distributed runtime regressions, security documentation, and OIDC recipes. 2. Stabilize Studio authoring: designer regression harness, input/property-editor fixes, async dispatch/run UX, state machine Studio/docs completion, and a clear UI framework direction. 3. Operationalize the diagnostics modules released in Core and Studio `3.8.0`: maintain collector setup guidance, validate the paired experience under operational load, and correlate traces/logs/metrics with workflow incidents. 4. Make workflow authoring easier to manage at scale: organization, search, progress/timeline APIs, testing docs, output-converter release/extension completion, and user preference/table-state persistence. 5. Reconcile shipped extension foundations with roadmap status: package manifests, Connections/Secrets, OpenAPI, Agents, schedulers, messaging, and integration maturity labels. -6. Productize the BPMN runtime/interchange foundation: complete validation and conformance work, define the supported subset, package it, and start the Studio rendering/authoring slice. +6. Productize the BPMN runtime/interchange foundation: complete validation and conformance work, define the supported subset, release the main-only Studio rendering/import/export/nested-authoring slice, and then add full editing and instance inspection. Mid term: