Scaling - AWS SWF, Batch, Step Function Flashcards
What is SWF?
managed status tracker; sequential and parallel processing, tracks state of your workflow
What use case does it solve?
human-enabled workflows like a order fulfillment or procedural requests; for new apps, step functions over SWF
What are the 2 main components of a SWF?
activity work: program that uses SWF to get, process, and return tasks
Decider: program that controls coordination of tasks
What is a AWS Step function?
HA and highly scalable managed workflow and orchestration platform; defines your app as a state machine; uses AWS State Language
What are Step Function use cases?
object can assume differentiate states throughout a process
What is AWS Batch?
management tool for batch oriented tasks related EC2 instances
What the steps for configuring AWS Batch?
- Create a Compute Environment
- Create a Job Queue with priority and assigned to a compute environment
- Create a job definition
- Schedule the job
When should Step functions be used?
out-of-the-box coordination of AWS service components; order processing flow; preferred over SWF for modern development
When should SWF be used
need to support external processes or specialized execute logic; loan app process with manual review steps
When should AWS Batch be used?
reoccuring simple task that dont require heavy logic; routine activity at specific times
When is SQS used?
messaging queue, storage and forward; image resize process
What are the function of a worker?
programs that work with SWF to get, process and return results for task; can be build in varying programming languages
What are the function of a decider?
controls the coordination of worker task; this interaction between works and deciders is brokered by SWF
Does SWF restrict the use of certain languages for writes and deciders?
no, any programming languages to communicate with SWF web service APIs; SDK is currently available in Java, .NET, PHP and Ruby