Amazon Simple Workflow Service
Developer Guide (API Version 2012-01-25)

Options for Ruby Flow Users

The AWS Flow Framework for Ruby is no longer under active development. While existing code will continue to work indefinitely, there will be no new features or versions. This topic will cover usage and migration options to continue working with Amazon SWF, and information on how to migrate to Step Functions.

Option Description

Continue to use the Ruby Flow Framework

For now, the Ruby Flow Framework will continue to work. If you do nothing, your code will continue to function as it is. Plan to migrate off of the AWS Flow Framework for Ruby in the near future.

Migrate to the Java Flow Framework

The Java Flow Framework remains in active development and will continue to receive new features and updates.

Migrate to Step Functions

Step Functions provides a way to coordinate the components of distributed applications using visual workflows controlled by a state machine.

Use the SWF API directly, without the Flow Framework You can continue to work in Ruby and use the SWF API directly instead of the Ruby Flow Framework.

The advantage the Flow Framework provides, for either Ruby or Java, is that it allows you to focus on your workflow logic. The framework handles much of the details of communication and coordination, and some of the complexity is abstracted. You can continue to have the same level of abstraction by migrating to the Java Flow Framework, or you can directly interact with Amazon SWF SDK directly.

Continue to use the Ruby Flow Framework

The AWS Flow Framework for Ruby will continue to function as it does now in the short term. If you have workflows written in the AWS Flow Framework for Ruby, these will continue to work. Without updates, support, or security fixes, it is best to have a firm plan to migrate off of the AWS Flow Framework for Ruby in the near future.

Migrate to the Java Flow Framework

The AWS Flow Framework for Java will remain in active development. Conceptually, the AWS Flow Framework for Java is similar to AWS Flow Framework for Ruby: you can still focus on your workflow logic, and the framework will help manage your decider logic, and will make other aspects of Amazon SWF easier to manage.

Migrate to Step Functions

AWS Step Functions provides a service that is similar to Amazon SWF, but where your workflow logic is controlled by a state machine. Step Functions enables you to coordinate the components of distributed applications and microservices using visual workflows. You build applications from individual components that each perform a discrete function, or task, allowing you to scale and change applications quickly. Step Functions provides a reliable way to coordinate components and step through the functions of your application. A graphical console provides a way to visualize the components of your application as a series of steps. It automatically triggers and tracks each step, and retries when there are errors, so your application executes in order and as expected, every time. Step Functions logs the state of each step, so when things do go wrong, you can diagnose and debug problems quickly.

In Step Functions, you manage the coordination of your tasks using a state machine, written in declarative JSON, that is defined using the Amazon States Language. By using a state machine, you don't have to write and maintain a decider program to control your application logic. Step Functions provides an intuitive, productive, and agile approach to coordinating application components using visual workflows. You should consider using AWS Step Functions for all your new applications, and Step Functions provides an excellent platform to migrate to for the workflows you currently have implemented in the AWS Flow Framework for Ruby.

To help migrate your tasks to Step Functions, while continuing to leverage your Ruby language skills, Step Functions provides an example Ruby activity worker. This example uses best practices for implementing an activity worker, and can be used as a template to migrate your task logic to Step Functions. For more information, see the Example Activity Worker in Ruby topic in the AWS Step Functions Developer Guide.

Note

For many customers, migrating to Step Functions from the AWS Flow Framework for Ruby is the best option. But, if you require that signals intervene in your processes, or if you need to launch child processes that return a result to a parent, consider using the Amazon SWF API directly, or migrating to the AWS Flow Framework for Java.

For more information on AWS Step Functions, see:

Use the Amazon SWF API directly

While the AWS Flow Framework for Ruby manages some of the complexity of Amazon SWF, you can also use the Amazon SWF API directly. Using the API directly allows you to build workflows where you have full control over implementing tasks and coordinating them, without worrying about underlying complexities such as tracking their progress and maintaining their state.