-
Notifications
You must be signed in to change notification settings - Fork 2
Workflows
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
Guflow
- Prerequisite
- Installation
-
Workflows
- Creating first workflow
- Registration
- Hosting
- Start workflow
- Schedule activities
- Schedule timers
- Schedule lambda function
- Schedule child workflows
- Lambda functions vs activities
- Workflow input
- Workflow actions
- Signals
- Workflow branches
- Deflow algorithm
- Workflow events
- Query APIs
- Custom polling strategy
- Things to take care of
- Activites
- Unit testing
- Performance & scalability
- Error handling
- Logging
- Debugging
- Tutorial
- Release notes