Elsa Workflows for the enterprise

2.4k views Asked by At

I about to embark on a new project in my company. I work in an enterprise that is highly governed by standards and best practices. We have Kofax TotalAgility already deployed. I'm trying to use Elsa as a lightweight alternative to Kofax which is built on .Net 4.6. I'm on Blazor Server-Side and .Net 5.

So Elsa has an appeal. Secondly, there s a severe lack of help when it comes to Elsa. A generic or hobbyist developer will not use a Workflow based business layer. Workflows are more common in enterprise environments. We have a load balanced deployment model for apps with AlwaysOn SQL Servers. If I include Elsa embedded in an application having it's tables as a part of the apps DB, I need to deploy it to two nodes pointing to same DB. This creates race conditions when it comes to pick up activities saved in DB and perform action. That is why Kofax is deployed as a single node specially. Which means I need to deploy Elsa based generic solution for all my apps. And I simply do not have a sample or a guide to do this.

Can someone help me understand this scenario: An Elsa deployed and running on a server with IIS exposing it API interface (if it has else deployed embedded in a .Net 5 Web API). A separate application(s) will be, then, leveraging this instance of Elsa.

I may be wrong in my understanding here. Please help.

1

There are 1 answers

1
Sipke Schoorstra On BEST ANSWER

Elsa 1 (the current release) is not suitable to use on more than a single node. Not only will you encounter concurrency issues as the OP mentions, but workflows with time-based activities will cause a given workflow to execute on every node, which is undesirable in normal use cases.

Elsa 2 (currently available as preview packages on MyGet) is a different story. Like Elsa 1, it is designed for use in your own application as a light-weight solution to add workflowing capabilities. But unlike Elsa 1, it is also designed to run as a separate workflow server, exposing APIs for other applications to interact with. For example, the dashboard application does not access the Elsa database directly, but instead takes advantage of the workflow server's API endpoints. Additionally, Elsa 2 is designed to be hosted on both single node and multi node environments, allowing you to easily scale out the workflow server horizontally.

Elsa 2 is slated to be released end of March.