Elsa 企业工作流程

Elsa Workflows for the enterprise

我即将在公司开展一个新项目。我在一家高度遵守标准和最佳实践的企业工作。我们已经部署了 Kofax TotalAgility。我正在尝试使用 Elsa 作为基于 .Net 4.6 构建的 Kofax 的轻量级替代品。我在 Blazor 服务器端和 .Net 5。

所以 Elsa 有上诉。其次,在爱尔莎方面严重缺乏帮助。一般或业余开发人员不会使用基于工作流的业务层。工作流在企业环境中更为常见。对于具有 AlwaysOn SQL 服务器的应用程序,我们有一个负载平衡部署模型。如果我将 Elsa 嵌入到一个应用程序中,并将其表作为应用程序数据库的一部分,我需要将它部署到指向同一数据库的两个节点。这会在选择保存在数据库中的活动并执行操作时产生竞争条件。这就是为什么 Kofax 被专门部署为单个节点的原因。这意味着我需要为我的所有应用程序部署基于 Elsa 的通用解决方案。而且我根本没有样本或指南来执行此操作。

谁能帮我理解这个场景:部署了 Elsa 并 运行 在带有 IIS 的服务器上公开它 API 接口(如果它已经部署嵌入到 .Net 5 Web API).然后,一个单独的应用程序将利用这个 Elsa 实例。

这里我的理解可能有误。请帮忙。

Elsa 1(当前版本)不适合在多个节点上使用。您不仅会遇到 OP 提到的并发问题,而且具有基于时间的活动的工作流将导致给定的工作流在每个节点上执行,这在正常用例中是不可取的。

Elsa 2(目前在 MyGet 上作为预览包提供)是另一回事。与 Elsa 1 一样,它被设计为在您自己的应用程序中用作添加工作流功能的轻量级解决方案。但与 Elsa 1 不同的是,它还被设计为 运行 作为一个单独的工作流服务器,公开 API 供其他应用程序与之交互。例如,仪表板应用程序不直接访问 Elsa 数据库,而是利用工作流服务器的 API 端点。此外,Elsa 2 旨在同时托管在单节点和多节点环境中,让您可以轻松地横向扩展工作流服务器。

Elsa 2 计划于 3 月底发布。