-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Roadmap #3232
Comments
@sfmskywalker For the tooling maybe we can include the Debugger as well. |
@sfmskywalker What is the current ETA for V3? Also, is there going to be a migration process from V2 to V3 or this is not decided yet? TIA. |
@PeterHuang-ST I’m hoping to be releasing a release candidate end of this year. Regarding migration path, I would love to do it but it depends on complexity and available resources. At the very least, we should write a migration guide. |
v3 any update ? @sfmskywalker |
Sure. There's still a ton of little things to do to achieve feature-parity with v2, but a preview is inching closer. I hope to get started on "getting started" tutorials soon. |
is version 3 ready or when it will be released? and how can i get a preview? |
Not ready yet, preview release on NuGet probably later this month or sometime next month. You can give it a spin by following the Installation section of the documentation (which is far from finished): https://v3.elsaworkflows.io |
PS. I just realized that the preview package feed of DevOps is outdated. The part “Packages” needs to be “Elsa3”. Will fix. |
Hey there! I would be really nice if the Activity editor could be replaced to use custom Blazor components. Perhaps a generic Attribute with some constrains making the editor "contract" compliant could work. Also some activities may require complex controls and custom behabiour when configuring. Say I have a FTP activity. I could try to connect using the credentials and give feedback to the user while it's configuring the activity. Or build a drag and drop form within the activity that will somehow get shown to the user. Rember the chatbot? ;) There are so many more examples I can think of. This would be pretty hard to do with the current stencil components. Super powers for the people that want to create activities. I'll create an issue for this :) Have a nice day |
When will we expect about Elsa 3 to be released as stable and final version. |
Can someone update commitment in using Blazor for UI and Designer? |
@vgb1993 Agreed! We are going to re-implement the designer in Blazor, but after 3.0 release as to not further delay it unnecessarily. @sfanwar We expect RC to drop end of May. @GeorgeS2019 Done ;) |
Do we know if the v3 will work with data from v2? |
Elsa 3 is a rewrite, so by default, there is no compatibility. However, I might do some experiments related to data migration or even interpretation of the V2 model to help bring over existing V2 projects. |
I think, as a practice, Elsa should think about backward compatibilities. It is not good if you want it to Project as THE LIBRARY for handling workflows. Every version having breaking changes is not a good experience. |
Mqtt Activities? |
Re the rewrite of the designer in Blazor, I wonder if this is really a good idea? While Blazor has a decent developer experience, it has very poor performance and extremely large bundle sizes. It's generally recognised that Blazor is a poor choice for anything other than internal/LOB applications. Wouldn't it be preferable from an end-user perspective to have a relatively lightweight web component that can easily be embedded in another application (e.g. created using React/Vue/Solid/Svelte/Lit etc.)? |
@zejji That means, there is NOW fast iteration to make Blazor low latency with new innovation of hybrid/mixed frontend webassembly backend server performance optimization. It is this committed Fast iteration and pushing new way to support global scalable web deployment with low latency the basis why we need to move to Blazor Currently on preview .NET8 => Blazor United |
The fundamental motivation for choosing Blazor is to REMOVE incompatibility between the backend .NETCore and the existing frontend designer not based on .NETCore. By harmonizing .NETCore between backend and frontend designer, this opens NEW Innovation not possible before that keeps Backend separated from the frontend developers |
@GeorgeS2019 - I'm aware of Blazor United, but it doesn't fix the fundamental problem that Blazor WASM (i) requires the whole .NET runtime to be downloaded to the browser sooner or later and (ii) uses JavaScript interop to access the DOM. It will always be less efficient than a JavaScript-based web app, since JavaScript is obviously the only inbuilt language in browsers. I say this as someone who loves .NET and would love to be able to use Blazor for production applications. However, currently the developer UX is the only argument for using Blazor - all performance and bandwidth considerations indicate strongly against it. Cf. https://krausest.github.io/js-framework-benchmark/index.html, where Blazor WASM has the worst performance of all tested frameworks for speed, startup time and memory allocation. Re bundle sizes - see https://medium.com/dailyjs/a-realworld-comparison-of-front-end-frameworks-2020-4e50655fe4c1#31f0 for a comparison of common JavaScript frontend framework bundle sizes, where many libraries require only tens of kilobytes. Contrast that with Blazor WASM app, where a 'Hello World' application is just under 2 MB when compressed with Brotli and fully-fledged applications tend to be much, much larger still. |
@zejji Is there a restiction to use the Blazor as a WASM solution? Blazor can be used as Server side as well which reduces the concerns you have regarding performace and bandwidth due to large packages and performance. sure there are some challenges there as well but for me at least less intrusive as the WASM approach. |
Issue 1
Issue 2
|
@FransVanEk - There are also some (different) major downsides with using Blazor Server unfortunately:
These are trade-offs one might be willing to make when designing a bespoke application, as it may be the case that the requirement for an extremely large number of concurrent users is not present and that speed and resource usage are only secondary requirements. However, when designing a library, they are not trade-offs I would personally make, as you would effectively be dictating the performance characteristics of the consuming application. If there were no alternatives, then one would have to accept this, but obviously much more performant JavaScript-based alternatives do exist. @GeorgeS2019 - I'm currently developing a small application using Blazor WASM on .NET 7 and, even with relatively limited functionality and all optimizations enabled (after a significant amount of research, including following recommendations from Microsoft and third parties), the published Blazor application bundle (compressed using Brotli and excluding all CSS, JavaScript, assets etc.) is 2.75 MB. For comparison, the equivalent application in e.g. SolidJS is well under 100kb. Furthermore, despite using SSR in the project to improve perceived page load, there is a significant (often up to 5s) delay in the page becoming interactive. It's not possible to improve on this, as this is the time taken to download and initialize the runtime and framework. I've enjoyed working with Blazor a lot, but I can't see it being appropriate for a public-facing high-traffic website any time soon. That said, if the decision is made to go with Blazor specifically for productivity reasons, that would certainly be understandable. |
The bundle size/startup performance may not be the key issue here. Right now there is no direct integration with the DOM, any interaction has to pass through javascript glue code including DOM events. For a diagram designer I'd expect lots of drag&drop interaction and that translates to a massive event stream crossing the JS-WASM boundary (or for Blazor Server the network boundary). Microsoft has to work with the WASM limitations no matter how much they are committed to fast iteration and this likely won't change until proposals like GC integration are fully speced, implemented and deployed. That could take a long time. IIRC the current "suggested" workaround is to stay in JS. At least some exploratory testing for usability should be done before this is fully committed. |
If the Diagram designer is in blazor, there will be more users here who are Elsa backend developers will engage more regularly and directly with the diagram designer when it is Blazor using c# or c#-JS interop. If it is not in Blazor, the situation will be the same now, we HOPE someone will take our feedback to implement the change to the Diagram Designer. Users here who could develop the Diagram Designer using the existing JS is perhaps 5% or even much smaller than the majority of the users here. If it is important to engage iterative UI FEEDBACK from backend Elsa developers to have FAST iteration of the diagram designer, BLAZOR will have a significant advantage. If we have a dedicated Diagram designer who will actively handle all issues raised by backend users, we could ignore Blazor suggestion. From what I observed at least last 2 years, this is NOT THE CASE. Encouraging backend users to directly contribute to the Front end Diagram Designer will speed up the quality and usability of the Diagram Designer. |
Here are some of the things I am taking into consideration.
Considering the above, it seems to me that there are 2 main groups of developers:
For the first group, we can divide them into two subgroups: a) Developers who prefer to extend the dashboard using Blazor. For group no. 2, the dashboard application is useless. All they are interested in is to have a designer that they can embed in a page and interact with programatically.
The above is easily implemented using component libraries, which may or may not support theming. Just to try and clarify certain points that were made by others:
It depends on whom you ask. My initial idea was to wrap it in a custom element so that it doesn't matter what your application UI stack is. However, in order to make it extensible and customisable, being able to use an existing component library boosts productivity not just for me, but for anyone trying to customise and extend. So now I'm wondering the usefulness of a Blazor implementation of the designer outside the context of a Blazor dashboard. Instead, I think there are two main use cases (the two main groups of developers I mentioned earlier).
My personal experience with Blazor so far, is that it offers a great developer experience. Even without having figured out how to do hot reload from Jetbrains Rider. I just love the component model, the way binding works, and, best of all, using proper C#. As for the extremely large bundle sizes, you'd have to define "extreme". A couple of MBs seems not an issue for the average backend system (which, after all, is where most, if not all, workflow designers will end up anyway).
Yes, absolutely. And I have tried to do this. But I don't think it's enough; I want the designer to be extensible and themeable, and have a solid component framework to build upon. It's possible to do, it currently has a concept of plugins, but for many users I have spoken with, it's a real barrier. And at the same time, there are many existing component libraries that can be reused. So maybe it's best to keep the Stencil component as-is for embedding, and not have it implement other modules, like the ones I listed. Instead, developers would implement those features themselves, and other developers who don't have their own dashboard, can chose to leverage the Blazor dashboard (and possibly in the future, a JS-implementation of the dashboard).
Actually, my motivation is a little bit different than that. My main motivation to use Blazor is because it enables me to use C#, .NET and Razor components, which in turn means I get to use component libraries such as MudBlazor, which boosts productivity like crazy. It also means that the dashboard can be made extensible and customisable extremely elegantly, which makes it easy for .NET developers to do.
@GeorgeS2019 I guess my previous statement puts a stain on this vision. Perhaps you can elaborate a bit on these opportunities? For example, are you talking about shared use of model classes, and/or making the backend and front end environments appear as "one" to the developer? Let there be no confusion: The Elsa backend is equally intended to be consumable by whatever front-end, be it Blazor, JS applications, Postman automation, etc. At no point will the Elsa backend become tightly coupled with any kind of front end (and if that does happen, it's a mistake).
Actually, the Blazor dashboard implementation relies on the X6 diagramming library, which means that all drag & drop operations happen in JS-space. Except for dragging a new activity from the toolbox onto the designer - that toolbox is done in Blazor. But that's fine in terms of perf.
To be clear, the current diagram design surface is still provided via the X6 library. But, everything around it (activity picker, activity property panel) and even the activities being rendered themselves, are proper Blazor components. Thanks everyone for sharing your insights! |
is v3 released now? |
Not yet. We hope to release RC2 end of this month, but it largely depends on how fast we can work through the issues with the RC2 milestone. After that release, maybe one month later we can release 3.0 proper, barring any blocking issues we find in RC2. |
Elsa-Studiofor Elsa v3 preview using Blazor works @sfmskywalker <= thx |
Hey, what is the plan for an official release of Elsa 3? |
Same here, im trying to determine if worth start with v3 or go on v2 |
@Eitanski @carlosmorenoaguilera Elsa 3.0 will be out this month. The source code has moved from the v3 branch into the main branch and we're working on some minor improvements before we deploy the 3.0.0 packages to NuGet. Almost there! |
@sfmskywalker |
Cheers @Eitanski |
This project is great, please stick to blazor, this is Net's playground |
Hi @sfmskywalker - Any update on 3.0 release? |
Same here too...Waiting for V3 to check it out. |
The release will happen today or within the next few days, depending on what we still find in terms of blockers. But you don't have to wait for the release to give it a spin.The docker images and NuGet packages are all available. |
@sfmskywalker - Facing a challenge with the pre-release version of V3. Please see below build error on WASM studio On using Blazor Server studio, getting similar error on build P.S.: Followed documentation on https://v3.elsaworkflows.io/docs/installation/elsa-studio-blazorwasm & https://v3.elsaworkflows.io/docs/installation/elsa-studio-blazorserver respectively |
@Sudarsanam-Krishnan Thanks for reporting your findings. The documentation ha been updated to reflect the latest changes. Specifically, the build error you pointed out can be fixed by replacing the problematic lines with the following: builder.Services.AddRemoteBackend(
elsaClient => elsaClient.AuthenticationHandler = typeof(AuthenticatingApiHttpMessageHandler),
options => configuration.GetSection("Backend").Bind(options)); I will close this issue as resolved, but please feel free to continue the conversation. Thanks! |
Reopening, as this is the roadmap, not an actual issue 😄 |
Hello, I don't know if you added autoscaling by event for example we can use the KEDA project, https://keda.sh/docs/2.13/scalers/mongodb/ |
I wasn't aware of that, thank you for the tip 😃 |
Any idea when / if support for Azure functions will be added? |
Is there a migration guide for migrating from Elsa 2 to 3? |
@dwalba Yes, but it also depends on what you mean with support for Azure Functions. For example, if you want to be able to invoke an Azure Function from a workflow, you can do that today by creating a custom activity that invokes the Azure function. In addition, I can imagine having a module that connects to Azure Functions in order to enumerate the available functions, and automatically generate Activity Descriptors at runtime, allowing you to directly drag & drop Azure Functions as activities to the workflow designer. If you would like to explore potential other scenarios, please feel free to open an issue and/or discussion. @bhaeussermann Unfortunately, I haven't had the opportunity yet to work on a migration guide. |
This issue lists high-level functionality I'd like to add to Elsa 3 and beyond. It's not a final list and the order in which each milestone will be picked up might change over time and depends on business value & community interest.
Engine
Runtime
Activities
Tooling
Integration & Modules
Studio
Ecosystem
The text was updated successfully, but these errors were encountered: