You're developing an application onto AWS which is based on the Microservices.
These Microservices will be created based on AWS Lambda functions.
Because of the complexity of the flow of these different components, you need some way to manage the workflow of execution of these various Lambda functions.
How could you manage this effectively now and for the future addition of Lambda functions to the application?
Click on the arrows to vote for the correct answer
A. B. C. D.Answer - C.
The best way to manage this is to use Step Functions.
The AWS Documentation mentions the following about Step Functions.
AWS Step Functions is a web service that enables you to coordinate the components of distributed applications and microservices using visual workflows.
You build applications from individual components that perform a discrete function, or task, allowing you to scale and change applications quickly.
Step Functions provide a reliable way to coordinate components and step through the functions of your application.
Options A and B are invalid.
Even though feasible, it would just bring too much of effort and maintenance into the entire system.
Option D is invalid because this is good in managing the messaging between distributed components of an application.
For more information on Step Functions, please refer to the below Link-
https://docs.aws.amazon.com/step-functions/latest/dg/welcome.htmlWhen developing an application based on microservices architecture using AWS Lambda functions, it is important to manage the workflow of execution of these various Lambda functions. This management should be effective now and for future addition of Lambda functions to the application.
There are different ways to manage the workflow of execution of Lambda functions in AWS. The options provided in the question are:
A. Consider creating a master Lambda function that would coordinate the execution of the other Lambda functions. This option involves creating a master Lambda function that will manage the workflow of execution of the other Lambda functions. The master Lambda function will be responsible for invoking the other Lambda functions based on the workflow design. This option is feasible for smaller applications with simple workflows.
B. Consider creating a separate application hosted on an EC2 Instance which would coordinate the execution of the other Lambda functions. This option involves creating a separate application hosted on an EC2 instance that will manage the workflow of execution of the Lambda functions. The separate application will be responsible for invoking the Lambda functions based on the workflow design. This option is feasible for applications with complex workflows and requires additional management of the EC2 instance.
C. Consider using Step Functions to coordinate the execution of the other Lambda functions. This option involves using AWS Step Functions to manage the workflow of execution of the Lambda functions. AWS Step Functions is a fully managed service that makes it easy to coordinate the components of distributed applications and microservices using visual workflows. AWS Step Functions can manage the Lambda functions and other AWS services using AWS SDKs, which makes it easy to implement, test, and deploy workflows.
D. Consider using SQS queues to coordinate the execution of the other Lambda functions. This option involves using Amazon Simple Queue Service (SQS) to manage the workflow of execution of the Lambda functions. SQS is a fully managed message queuing service that enables decoupling of components of a cloud application. The Lambda functions can be triggered by SQS messages, and the order of execution can be managed using message priority.
In summary, the best option to manage the workflow of execution of Lambda functions depends on the complexity of the application and the workflow. For simple workflows, option A or B can be considered. For complex workflows, options C or D can be considered. However, using AWS Step Functions (option C) is a recommended option because it provides a fully managed service that makes it easy to coordinate the components of distributed applications and microservices using visual workflows.