首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

云原生时代的业务流程编排

在这些开源项目中,Netflix Conductor和Uber Cadence的实现代码我有深入研究,并且两个都在生产项目中应用过。...后来SWF的tech lead去了Uber,在Uber把工作流引擎发扬光大,由专门的引擎团队负责用Go语言打造Cadence平台,多个业务部门基于Cadence平台开发出支撑几十个业务的流程编排服务,也有一些业务部门根据自身业务特点定义特定的...Cadence也不是没有缺点,譬如,比较棘手的一个问题:DSL中实现的状态和Cadence自身的event(Cadence使用event记录调度决策和任务执行的每个状态转换)不能产生关联,event id...如果开发者希望将DSL中的state/step和Cadence event做映射以方便调试或理解内部运行的逻辑,则需要修改Cadence核心代码,第一,方面不利于维护;第二,Cadence的主要服务组件设计文档缺乏...的架构设计有不错的水平扩展能力,用堆机器的手段仍然可以应付很多业务场景的需求,我估计Uber内部用来运行Cadence集群的服务器数量一定不少 ^_^ 前面介绍了工作流引擎/流程编排的概念和相关优秀开源项目

14.4K111

Uber Go语言规范

Uber公司推出的Go语言规范,建议没看过的同学看一遍,内容同步到了我的GitHub上,后续会补充一些case,感兴趣的同学可以点击原文查看 介绍 指南 退出一次 错误类型 错误包装 错误命名 指向interface...Mutexes的零值是有效的 在边界拷贝Slices和Maps 使用Defer释放资源 Channel大小应为0或1 枚举从1开始 使用time包来处理时间 错误 处理断言失败 不要使用Panic 使用go.uber.org...本指南的目的是通过详细描述在Uber编写Go代码的注意事项来管理这种复杂性。这些规则的存在是为了保持代码库的可管理性,同时还允许工程师有效地使用Go语言的特性。...这记录了我们在 Uber 所遵循的 Go 代码中的习惯性约定。...= nil { t.Fatal("failed to set up test")} 使用 go.uber.org/atomic 使用 sync/atomic 包的原子操作对数据类型进行操作(int32

92820
领券