2017-09-21 80 views
0

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

回答

0

你说得对,AWS目前只提供Ruby和Java的高级框架(“Flow”框架)。在大多数(所有?)官方SDK中都可以访问SWF的低级访问权限:Python的boto2/3,go-sdk等。

使用SWF时,您会发现自己主要实现两种类型的程序: “活动工作者”和“决策者”(http://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-actors.html)。

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

如果你想为决策者使用其他语言,我建议你先尝试使用现有的框架,然后看看你是否想自己实现这一点(从我的经验来看,这不是微不足道的)。

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