Zàf*_*med 3 architecture workflow activiti camunda cadence-workflow
为什么我们需要像 Uber 的 Cadence、Camunda 或 Activiti 这样的特殊软件?如果它只是一系列任务,那为什么我们不能直接编码呢?我试图阅读 Camunda 和 Cadence 的文档,但无法深入了解。我公司想用。考虑过它的高级开发人员无法/似乎不会解释为什么或在哪里使用它。
而且我发现他们设置工作流程的代码/方式非常不直观。有人请帮忙。
该项目是使用 Java 和 Spring Boot 开发的。
Max*_*eev 10
“只需编码”是什么意思?好的,让我们看看下面的代码:
String r1 = task1(someArg);
String r2 = task2(r1);
if (r2.equals("foo")) {
sleep(Duration.ofHours(5));
task3(r2);
} else {
task4(r2);
}
Run Code Online (Sandbox Code Playgroud)
现在去“编写代码”使其具有可扩展性和容错性(例如,在执行 task2 时防止进程失败)并且对于任何这些任务实现的长时间停机都是健壮的。我敢打赌你的代码会出现一堆错误的回调和数据库调用。
临时工作流允许编写此类代码并使其具有容错性,而无需进行任何大的修改。
回答这个问题可能需要一本书。几个方面:
业务和 IT 之间的通信
您无法向业务显示代码,但人们了解 BPMN 图。至少基本符号集非常直观(http://bpmn.io/或https://www.omg.org/spec/BPMN/2.0/About-BPMN/#documents)。您会从哪里开始向业务分析师解释编码工作流的逻辑?您如何将有关业务规则的反馈转化为代码?
如果需求没有很好地转化为目标系统,那么您将获得额外的迭代和努力。BPMN 图可以由流程引擎解释,因此与业务讨论的操作流程与执行的流程之间没有不匹配。
灵活性/关注点分离
流程模型反映了业务逻辑,并允许您将其与代码分离。通过不把它埋在代码中,业务逻辑变得更容易理解(见上一段)和改变。它也可以独立进行版本控制。业务规则、流程逻辑和其他(例如集成)代码的生命周期通常非常不同。更快地更改 IT 系统意味着提高业务敏捷性。
透明度
工作流引擎 ootb 监控状态并收集所有(通常是强制性的)审计数据。我们在特定的流程执行中处于什么位置?为什么没有进展?谁执行了哪一步,何时执行?它花了多少时间?更改了哪些数据?
根据这些数据,您可以生成报告(过去 12 个月您银行开户过程的平均处理时间?)和分析(在某些情况下失去客户的风险?)
您必须编程的标准化功能 您会
开发自己的数据库吗?不,那你为什么要开发自己的工作流管理?状态管理、工作分配(用户、角色、组)、任务和数据的权限概念、审计信息记录、错误处理、线程管理、重试、标准报告……
我可以继续,但这应该给你一个想法。进一步阅读可能是:
https://thenewstack.io/5-workflow-automation-use-cases-you-might-not-have-thinked/
https://blog.bernd-ruecker.com/the-microservice-workflow-automation-cheat-sheet-fc0a80dc25aa
https://www.ecosia.org/search?q=why+workflow+engines
| 归档时间: |
|
| 查看次数: |
1334 次 |
| 最近记录: |