Decoupling Components in AWS Application Architecture

Decoupling Components in AWS Application Architecture

Prev Question Next Question

Question

You are in charge of developing an application that will make use of AWS services.

There is a key requirement from an architecture point of view that the entire system should be decoupled to ensure less dependency.

Which of the following are the suitable services to decouple different components of an application?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D. E.

Answer - B and C.

The AWS Documentation mentions the following.

Amazon Simple Queue Service (Amazon SQS) offers a secure, durable, and available hosted queue that lets you integrate and decouple distributed software systems and components.

Amazon SQS offers common constructs such as dead-letter queues and cost allocation tags.

Amazon SNS enables you to modernize your applications and decouple them into smaller, independent components that are easier to develop, deploy and maintain.

AWS SNS topics can be subscribed to by multiple decoupled services.

SNS is mostly used in conjunction with SQS to provide decoupled services.

Option A is incorrect since this service is used to build CI/CD pipelines for integration and deployment.

Option D is incorrect since this service is used as the build and test stage of the CI/CD deployments.

Option E is incorrect since AWS CodeStar is a cloud-based service for creating, managing, and working with software development projects on AWS.

For more information on the Simple Queue Service, please refer to the below link-

https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html https://aws.amazon.com/sns

To achieve a decoupled architecture, it's important to choose the right AWS services that can help to reduce dependency and increase flexibility. The suitable AWS services for decoupling the different components of an application are:

B. AWS Simple Queue Service (SQS) AWS Simple Queue Service (SQS) is a fully managed message queuing service that enables decoupling and scaling of microservices, distributed systems, and serverless applications. It allows different components of an application to communicate asynchronously, and it ensures reliability, durability, and fault tolerance. SQS is a perfect choice for decoupling as it decouples the producer and consumer of messages, and the producer doesn't need to know the state or status of the consumer.

C. AWS Simple Notification Service (SNS) AWS Simple Notification Service (SNS) is a fully managed messaging service that enables decoupling and coordination of microservices, distributed systems, and serverless applications. It allows different components of an application to communicate asynchronously and ensures reliable and scalable message delivery. SNS is a perfect choice for decoupling as it decouples the sender and receiver of messages and allows sending messages to multiple subscribers in different formats (e.g., email, SMS, HTTP endpoint).

A. AWS CodePipeline, D. AWS CodeBuild, and E. AWS CodeStar are not suitable for decoupling different components of an application, as they are tools for building, testing, and deploying code, and they do not provide messaging capabilities for decoupling.

In summary, AWS Simple Queue Service (SQS) and AWS Simple Notification Service (SNS) are the suitable AWS services for decoupling different components of an application.