AWS SWF – Simple Workflow Overview – Certification
AWS SWF – Simple Workflow
AWS SWF makes it simple to create applications that coordinate work across multiple components.
SWF makes it easy to develop distributed and asynchronous applications. It provides a programming model and infrastructure that allows you to coordinate distributed components, track and maintain their execution state in a reliable manner.
SWF stores metadata about a workflow as well as its components.
Stores assign workers to tasks and wait until the worker needs them.
Workers can be assigned tasks, which can be run on-premises or in the cloud.
Routes information between executions and associated Workers.
Tracks the progress of workers on Tasks with configurable timeouts.
Maintains a stable workflow state
SWF is used to coordinate tasks across applications. It involves scheduling, managing intertask dependencies and concurrency according to the logical flow.
SWF allows you to fully control the implementation of tasks and coordinate them, without worrying about the underlying complexities like tracking their progress or maintaining their state.
SWF monitors and maintains the workflow state in a durable manner, so that the application can withstand failures in individual components. The application can be implemented, scaled up, modified, and deployed independently.
SWF offers capabilities to support a variety of application requirements and is suitable for a range of use cases that require coordination of tasks, including media processing, web application back-ends, business process workflows, and analytics pipelines.Simple Workflow ConceptsWorkflowFundamental concept in SWF is the Workflow, which is the automation of a business process
A workflow is a collection of activities that accomplish a specific objective. It also includes logic that coordinates the activities.
Workflow ExecutionA workflow execution refers to a running instance or workflow
Workflow HistorySWF keeps track of the state and progress of each workflow execution. This saves the application the hassle of having to store it in a long-term storage.
It allows applications to be stateless because all information regarding a workflow execution is stored within its workflow history.
The history contains information about each workflow execution. It includes details about which activities were scheduled, their status, and the results. This information is used to determine the next steps in workflow execution.
History can be used to verify workflow executions are completed and monitor workflow executions.
Operations that do not alter the state of the workflow, such as polling execution, are not included in the workflow history. Polling execution does not usually appear in the workflow history
You can use markers to record information specific to the use case in the workflow history.
DomainEach runs in an AWS resource called Domain. This Domain controls the workflow’s scope.
AWS accounts can have multiple domains that contain multiple workflows.
Workflows from different domains can’t interact with one another
ActivitiesDesigning a SWF workflow, Activities must be clearly defined and then registered with SWF with information such name, version, and timeout.
Activity Task and Activity WorkerAn activity worker is a program that receives task requests, performs them, then reports back. An activity worker could be a program, or a person who performs the task with an activity worker software.
Activity tasks and the workers who perform them can run synchronously or not. They can be distributed across multiple computers or in different geographical regions.
can be written in different programming languages, and run on different operating system
may be created that are lengthy-running or that may fail, timeout require restarts, or that may complete with varying throughput and latency
DeciderA Decider implements Wo