首页 文章

AWS SWF与流程框架

提问于
浏览
0

我熟悉亚马逊SWF的概念 . 我可以看到许多不同语言的SDK使用SWF服务 . 此外,amazon Flow Framework是一组用于实现分布式应用程序的库 . 目前,此Flow Framework以Java和Ruby提供 . 那么我们如何在其他语言如python,php等中使用SWF编写分布式应用程序 . 这是否意味着amazon仅提供Java和Ruby的框架,其他语言还有其他供应商的库?请解释 .

1 回答

  • 1

    您是对的,AWS目前只提供Ruby和Java的高级框架(“Flow”框架) . 大多数(所有?)官方SDK中都提供对SWF的低级访问:pyoto的boto2 / 3,go-sdk等 .

    使用SWF时,您会发现自己主要实现两种类型的程序:"activity workers"和"deciders"(http://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-actors.html) .

    使用Flow框架不是强制性的,但它通过提供用于描述同步点的高级抽象,定义哪些任务可以并行运行,重试等来帮助实现决策者 . 还有非官方库(我个人维护)一个为我的公司,“simpleflow”) .

    如果你想为决策者使用其他语言,我建议你首先尝试使用现有的框架,然后看看你是否想自己实现这个(根据我的经验,这并非易事) .

    如果你想用其他语言实现活动,我建议你开始使用端到端的Flow框架,然后你可以1 / fork并使用你最喜欢的语言作为Ruby / Java Flow worker的子进程,或2 /模仿Flow框架的序列化逻辑,并使用低级API直接实现worker(这很简单:对一个活动进行轮询,做一些工作,然后用结果响应SWF) .

相关问题