Here are some scenarios where SWF can be used:
- When you have multiple tasks that need to be coordinated and executed in a specific sequence based on some dependency or in parallel
- When you have multiple application components and need to dispatch tasks to these application components
- When you have a distributed application and you need to coordinate and process tasks in a distributed application environment
- When you need to execute ordered application steps
- When you need to manage the application state during distributed execution
- When you need to reliably execute periodic tasks and audit the execution
- When you need to asynchronously execute event-driven tasks
Some of the SWF use cases are:
- Media processing
- Customer order processing workflow
- Web application backend
- Business process workflow
- Analytics pipelines
Now that we know what SWF is and what it can do, let's look at some basic concepts of SWF, such as workflows, workflow history, actors, tasks, domains, object identifiers...