Skip to content

Workflows

Gurmit Teotia edited this page Nov 9, 2022 · 7 revisions

Workflow

A workflow represents the collection of steps which are executed in a specific order to achieve the objective. e.g. A workflow to transcode a video file, uploaded on S3 bucket, could be defined as below:

TranscodeWorkflow

  • Step 1- Download the video file from S3 bucket to you local machine
  • Step 2- Transcode the video file to other format (MP4)
  • Step 3- Send transcoded video over FTP to a client
  • Step 4- Send email confirmation

Now you might think that you can create this workflow and implement these steps directly in your code without relying on Guflow or on Amazon SWF and you may be right in your thinking

  • if you implement both workflow and steps in same process
  • And do not worry about scalability and elasticity.

However if you have the scenario where thousands of videos are coming in to your system and you want to reliably process/transcode them then your custom build solution is not sufficient enough and that is where you need Amazon SWF and Guflow.

Video transcoding is just one of the example where Amazon SWF can be useful. Generally it can be very useful in the scenarios where you need some or all of following features:

  • Workflow steps (activity) can be executed on different machines
  • Elasticity, workers can be spawned and destroyed at will
  • Fault tolerance, worker or machine can malfunction
  • Coordination among different workflows
Clone this wiki locally