首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有事件的工作流引擎

带有事件的工作流引擎
EN

Stack Overflow用户
提问于 2022-07-28 15:08:03
回答 2查看 101关注 0票数 0

我正在研究一个工作流引擎来组织一些系统流。

作为研究的一部分,我想构建一个小的工作流poc:

工作流应该侦听一些事件,而不是开始(假设客户A创建了)

流动情况如下:

  1. 发布客户A的工作消息
  2. 接收客户A的工作消息响应
  3. 为客户A发布第二条工作消息
  4. 接收客户A的第二个工作消息响应
  5. 终端工作流

假设同时存在多个工作流,如何确保每个响应都指向正确的工作流?

我想出了一些解决办法(我认为没有一个足够好)。

  1. 在每个工作流中创建动态队列,作为消息的一部分,添加响应队列
  2. 与卡夫卡合作,阅读每一条信息,丢弃无关的信息。
  3. 响应将张贴到工作流引擎的api中。

我很想听听更好的建议。

EN

回答 2

Stack Overflow用户

发布于 2022-07-28 18:39:18

这是一个有趣的问题,但它是相当通用的,分析一个潜在解决方案的正确方法是考虑以下几个方面:

  • 你想要的手术规模是多少?
  • 创建工作流的频率是多少?例如,这些信息类似于用户配置文件更新,或者是用户与您的网站的一般交互?如果工作流每天触发一次,则与工作流每秒触发一次相比,您需要一个完全不同的体系结构。
  • 你想让这个系统成为多租户?如果是这样的话,您需要考虑一些隔离策略,这样一个客户的工作流就不会影响其他客户的工作流。

我假设,就像在任何架构决策中一样,您的目标是在可伸缩性和成本之间实现良好的平衡,而且我相信,考虑以上各点将有助于您在权衡中进行权衡。

为了节省成本,我相信如果您检查基于云的排队服务(如Amazon ),会有所帮助,因为您只为数据传输付费,而不是为队列本身付费。

此外,您还可以检查亚马逊兰博达中的无服务器计算,这对于事件处理来说同样是成本效益,因为您不为总是处于启动和运行状态的VM支付费用。

票数 0
EN

Stack Overflow用户

发布于 2022-07-31 18:03:38

备选方案3。

标准的方法是为每个客户创建一个工作流实例。然后,在发送事件时,通过其id将其发送到特定的工作流实例。

注意,在大多数工作流引擎中,在您描述的情况下,您不需要直接处理消息。工作流代码调用执行实际工作的活动。活动是异步调用的,并且可以在需要时使用多长时间。

我建议检查可以用来实现用例的temporal.io。免责声明:我是这个项目的负责人。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73155097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档