Correct Answer : A
Different between Steps function and SWF
Step Functions
SWF
Good for any new serverless application where coordination is required between various components using visual workflow
Need external signals to intervene in processes, OR Good if there are child processes and those require passing signals to parents.
Easy to use while developing application
More complex while developing application but complete control of orchestration logic
Uses declarative JAON to write state machine
Need to write decider program (programing of your choice) to separate activities between steps or use AWS flow framework
Serverless, lower admin overhead
Uses servers
Short running workflows
Long-running workflows,
Mostly used for synchronous tasks
Mostly used for asynchronous tasks
New AWS Service, less complex applications
Legacy application, Complex decisions (custom decide application)
Integrate with AWS Mechanical Turk
The main point is to design an application where some tasks can take longer than expected. For example, address validation. Also, this application should support integration with other AWS services.
Option A is CORRECTsince this SWF is the right fit for long-running tasks. SWF can manage activities in an async way and support integration with other AWS services. See the difference table for more details. SWF helps manage tasks sequentially or in a parallel way, and this is a must required for an order processing application.
Option B is incorrect because the Step function is not good for long-running activities.See the difference table for more details.
Option C is incorrect because managing workflow with Lambda and API gateway would not be the right solution.
Option D is incorrect because SQS is queue management. SQL enables decoupling applications.