Amazon SWF (Simple Workflow Service) is an Amazon Web Services tool that helps developers coordinate, track and audit multi-step, multi-machine application jobs. A developer can access Amazon SWF through the AWS Management Console, AWS SDK or SWF APIs.
Amazon SWF provides a control engine that a developer uses to coordinate work across components of distributed applications. The developer writes a program -- in his preferred programming language -- called a decider, which coordinates the execution of processing steps, called activity workers. The developer can deploy workers and deciders on AWS infrastructure -- using either Amazon Elastic Compute Cloud or AWS Lambda -- or on local machines.
Each application workflow requires several processing steps, which either executable code, an API call to another service, simple scripts or a human action performs. Amazon SWF then receives results from the service or code to notify the developer. Amazon SWF removes the need to track application states via database or another ad hoc tool, it also tracks long-running tasks that could take weeks or months to finish.
Amazon SWF enables a developer to manage dependencies, scheduling, load distribution and other associations with each worker. The AWS Flow Framework feature helps a developer build an asynchronous workflow.
The developer builds logic on top of the control engine via HTTP APIs, allowing him to separately manage the application's underlying state machinery and the logic added to it. Amazon SWF can manage storage and monitoring tasks, allowing the developer to focus on the application's logic.
Amazon SWF limits each AWS user to 10,000 combined workflows and activity workers. Users are billed according to the number of times a workflow or task runs. AWS also provides a free tier of service for Amazon SWF.