View on GitHub

Amazon.SimpleWorkflow.Extensions

Extensions to AmazonSDK's SimpleWorkflow capabilities to make it more intuitive to use

Download this project as a .zip file Download this project as a tar.gz file

Amazon SWF

Amazon's Simple Workflow (SWF) service provides a scalable platform for automating processes, or workflows in your application. It centers around the concept of tasks. Each task will fall into one of two categories:

Tasks are distributed to 'workers' with polling, and like Simple Queuing Service (SQS), each task can be received by one worker at a time and the worker has certain amount of time to complete the task and responds with a completion message or the task will be timed out (and can be retried up to some configured number of times). For long running activity tasks, the worker might also need to record periodic heartbeats, or the task might be marked as failed or timed out.

Every step of a workflow execution is recorded in SWF and you can retrieve the full history of events that had occurred during a workflow either programmatically or via the Amazon Management Console.

You can also easily terminate or rerun a workflow with a few button clicks in the Amazon Management Console, should you choose to.

Project Goal

The standard Amazon SDK provides a AWS Flow Framework, but it's only available for Java.

The facilities provided by the .Net SDK is a straight mapping to the actions available on the SWF service. Using these actions alone, it's cumbersome to build any sort of useful process out of SWF because you need to take care of a lot of plumbing yourself, including:

The goal of this project is to provide a framework that allows you to design and implement a workflow using SWF with as little friction in the development process as possible.

Example usages

Check out the Wiki page for a list of examples.

I also have a series of introductory posts on how to use the library to model workflows:

Nuget

Download and install using NuGet.

NuGet package

You can view the full release notes here.

Keep in touch

Please follow the official twitter account @swf_extensions for updates, and feel free to send me any feedbacks or questions you have about the project :-)