- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Temporal.io与cadenceworkflow.io有何关系?如果根据节奏工作流服务启动新项目,应该使用什么?
最佳答案
免责声明:我是Cadence项目的原始联合创始人和技术主管,目前是Temporal Technologies的联合创始人/首席执行官。
temporal.io是Cadence项目Maxim Fateev和Samar Abbas的原始创始人和技术负责人的Cadence项目的分支。我们成立了Temporal Technologies,并获得了风险投资,因为我们相信通过AWS Simple Workflow,Durable Task Framework和Cadence项目开创的编程模型具有超越单一公司的潜力。拥有一个商业实体来推动该项目向前发展对于该项目的寿命至关重要。
时分叉具有Cadence的所有功能,因为它不断与它融合。它还实现了多个新功能。
这是自Temporal音叉最初发布以来Cadence和Temporal之间的一些技术差异(预计在05/2020达到生产状态)
所有节俭结构都被原生动物结构所取代
Cadence的所有公共API均依赖Thrift。节俭对象也以序列化形式存储在数据库中。
时间将所有这些结构转换为Protocol Buffers。这包括存储在数据库中的对象。
通信协议从TChannel切换到gRPC
Cadence依赖TChannel,这是Uber开发的基于TCP的多路复用协议。 TChannel有很多限制,例如不支持任何安全性以及语言绑定的数量非常有限。甚至在Uber上,它基本上已被弃用。
Temporal将gRPC用于所有进程间通信。
TLS支持
Cadence不支持任何通信安全性,因为它是TChannel的限制。
Temporal支持双向TLS,将来将支持更高级的身份验证和授权功能。
简化配置
Temporal重新设计了服务配置。其中一些最令人困惑的部分已被删除。例如,消除了配置成员资格种子的需要。在时间上,每个主机在启动时都会向数据库注册自己,并将数据库中的列表用作种子列表。
发布管道
Cadence不会测试任何公开发布的工件,包括docker映像,因为它的内部发布管道仅确保内部构建的工件的质量。它还不会对未在Uber中使用的依赖项执行任何发布测试。例如,除了进行不完全的单元测试外,还没有对MySQL集成进行过测试。 CLI和其他组件也是如此。
Temporal正在对发布过程进行大量投资。所有工件(包括完全受支持的依赖关系矩阵)都将通过完整的发布管道进行管理,该发布管道将包含多天的压力运行。
发布过程的另一个重要部分是生成生产问题补丁的能力。确保此类补丁程序的质量并及时生成所有必要工件的能力对于在生产中运行Temporal的任何人而言都很重要。
转到SDK
Temporal对Cadence Go客户端实施了以下改进:
Protobuf和gRPC
没有活动和工作流类型的全局注册
向工作人员注册活动结构实例的能力。它极大地简化了将外部依赖传递给活动的过程。
工作流和活动拦截器允许实现一些功能,例如通过外部配置文件配置超时。
活动和工作流类型名称不包括程序包名称。这使得在不中断更改的情况下进行代码重构变得更加简单。
Cadence要求的大多数超时现在是可选的。
工作流。等待方法
Java SDK
Temporal在Cadence Java客户端上实现了以下改进:
工作流和活动注释,以允许活动和工作流实施对象实施非工作流和活动接口。对于像Spring这样的AOP框架来说,这很重要。
多态工作流和活动接口。这允许在多个活动和工作流类型之间具有公共接口。
动态注册信号和查询处理程序。
工作流和活动拦截器允许实现一些功能,例如通过外部配置文件配置超时。
活动和工作流程类型名称生成得到改进
我们还有许多其他功能和计划用于其他语言的客户端SDK。您可以在Temporal Slack Workspace找到我们。
关于cadence-workflow - 时间工作流程与Cadence工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61157400/
我在Windows 10中使用一些简单的Powershell代码遇到了这个奇怪的问题,我认为这可能是我做错了,但我不是Powershell的天才。 我有这个: $ix = [System.Net.Dn
var urlsearch = "http://192.168.10.113:8080/collective-intellegence/StoreClicks?userid=" + userId +
我有一个非常奇怪的问题,过去两天一直让我抓狂。 我有一个我试图控制的串行设备(LS 100 光度计)。使用设置了正确参数的终端(白蚁),我可以发送命令(“MES”),然后是定界符(CR LF),然后我
我目前正试图让无需注册的 COM 使用 Excel 作为客户端,使用 .NET dll 作为服务器。目前,我只是试图让概念验证工作,但遇到了麻烦。 显然,当我使用 Excel 时,我不能简单地使用与可
我开发了简单的 REST API - https://github.com/pavelpetrcz/MandaysFigu - 我的问题是在本地主机上,WildFly 16 服务器的应用程序运行正常。
我遇到了奇怪的情况 - 从 Django shell 创建一些 Mongoengine 对象是成功的,但是从 Django View 创建相同的对象看起来成功,但 MongoDB 中没有出现任何数据。
我是 flask 的新手,只编写了一个相当简单的网络应用程序——没有数据库,只是一个航类搜索 API 的前端。一切正常,但为了提高我的技能,我正在尝试使用应用程序工厂和蓝图重构我的代码。让它与 pus
我的谷歌分析 JavaScript 事件在开发者控制台中运行得很好。 但是当从外部 js 文件包含在页面上时,它们根本不起作用。由于某种原因。 例如; 下面的内容将在包含在控制台中时运行。但当包含在单
这是一本名为“Node.js 8 the Right Way”的书中的任务。你可以在下面看到它: 这是我的解决方案: 'use strict'; const zmq = require('zeromq
我正在阅读文本行,并创建其独特单词的列表(在将它们小写之后)。我可以使它与 flatMap 一起工作,但不能使它与 map 的“子”流一起工作。 flatMap 看起来更简洁和“更好”,但为什么 di
我正在编写一些 PowerShell 脚本来进行一些构建自动化。我发现 here echo $? 根据前面的语句返回真或假。我刚刚发现 echo 是 Write-Output 的别名。 写主机 $?
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 4年前关闭。 Improve thi
我将一个工作 View Controller 类从另一个项目复制到一个新项目中。我无法在新项目中加载 View 。在旧项目中我使用了presentModalViewController。在新版本中,我
我对 javascript 很陌生,所以很难看出我哪里出错了。由于某种原因,我的功能无法正常工作。任何帮助,将不胜感激。我尝试在外部 js 文件、头部/主体中使用它们,但似乎没有任何效果。错误要么出在
我正在尝试学习Flutter中的复选框。 问题是,当我想在Scaffold(body :)中使用复选框时,它正在工作。但我想在不同的地方使用它,例如ListView中的项目。 return Cente
我们当前使用的是 sleuth 2.2.3.RELEASE,我们看不到在 http header 中传递的 userId 字段没有传播。下面是我们的代码。 BaggageField REQUEST_I
我有一个组合框,其中包含一个项目,比如“a”。我想调用该组合框的 Action 监听器,仅在手动选择项目“a”完成时才调用。我也尝试过 ItemStateChanged,但它的工作原理与 Action
你能看一下照片吗?现在,一步前我执行了 this.interrupt()。您可以看到 this.isInterrupted() 为 false。我仔细观察——“这个”没有改变。它具有相同的 ID (1
我们当前使用的是 sleuth 2.2.3.RELEASE,我们看不到在 http header 中传递的 userId 字段没有传播。下面是我们的代码。 BaggageField REQUEST_I
我正在尝试在我的网站上设置一个联系表单,当有人点击发送时,就会运行一个作业,并在该作业中向所有管理员用户发送通知。不过,我在失败的工作表中不断收到此错误: Illuminate\Database\El
我是一名优秀的程序员,十分优秀!