AWS Flow Framework in Ruby for Distributed Ruby Applications

An intermediate talk proposed by Sunjay

When developers build applications that process information through multiple steps and across multiple machines, it becomes important to coordinate and track these steps in a reliable way. The AWS Flow Framework is a Ruby framework that uses the Amazon Simple Workflow APIs to coordinate units of work, modeled as Ruby classes and methods, across distributed machines. The framework provides an easy way for developers to build a state machine that knows what's happening across these distributed units of work and to know what steps need to be processed next. The framework also provides easy-to-use abstractions for many core distributed computing patterns, like parallel execution of work, exception handling for asynchronous code, and exponential retry of failed work. On top of that, the Amazon Simple Workflow service helps audit and maintain the history of work that has transpired across many different machines and makes this information available at any time for debugging the distributed application. Using the AWS Flow Framework in Ruby, developers can execute distributed Ruby code asynchronously without building complicated abstractions that are hard to implement and difficult to debug. In this session, we will walk through a use case to show how to solve difficult distributed systems problems using the AWS Flow Framework in Ruby and Amazon Simple Workflow. You will walk away from this session with an understanding of how to code straightforward distributed Ruby applications using the framework and how you can use Amazon Simple Workflow as a tool to bring resiliency, concurrency, and auditability to your applications.

Back to talks