AWS Flow Framework
As part of the AWS SDK, Amazon SWF offers the AWS Flow Framework, which enables you to develop Amazon SWF-based applications quickly and easily. This programming framework provides constructs that abstract the details behind task level coordination using Amazon SWF. The AWS Flow Framework makes it convenient to create and orchestrate tasks as well as express their inter-dependencies using familiar programming concepts. For example, initiating an activity task is as simple as calling a method and worker failures can be handled as exceptions.
The AWS Flow Framework automatically translates a method call into a decision to schedule the appropriate activity task and instructs Amazon SWF to assign the task to a worker. The framework also makes the result of the tasks available as the return value of the method. To express the inter-dependency of tasks, you simply use the return value of one method as the input argument to another. Calls to such methods do not block and the framework automatically executes them when all inputs become ready. Behind the scenes, the framework receives worker and decision tasks from Amazon SWF, invokes the relevant methods in your program, and formulates decisions to send back to Amazon SWF. Thanks to the intuitive programming constructs, the AWS Flow Framework makes writing Amazon SWF workflows similar to writing typical programs.
The AWS Flow Framework is currently available in Java as part of AWS SDK for Java. For more details, please refer to the AWS Flow Framework Developer Guide. To see how you can use AWS Flow Framework and Amazon SWF for various use cases such as distributed data processing, Cron jobs and application stack deployment, see the AWS Flow Framework samples. By looking at the included source code, you can learn more about the features of Amazon SWF and how to use the AWS Flow Framework in your applications.