Question

Difficulty: EasyDecoupling Architectures and Event-Driven Messaging

A retail company is designing an application that receives transaction logs from physical stores. The transaction logs must be processed in the exact order they are received to ensure accurate inventory updates. The processing application must run continuously as a background process to handle the constant stream of messages. The solutions architect needs to decouple the ingestion layer from the processing layer.

Which TWO actions should the solutions architect take to meet these requirements?

  1. Create an Amazon SQS FIFO queue to buffer the incoming transaction logs.Answer
  2. Deploy the processing worker on Amazon ECS using AWS Fargate to run the containerized application continuously.Answer
  3. C
    Create an Amazon SQS Standard queue to buffer the incoming transaction logs.
  4. D
    Deploy the processing worker as an AWS Lambda function configured with a 15-minute timeout to execute the code continuously.

Answer

The solutions architect should create an Amazon SQS FIFO queue to buffer the transaction logs and deploy the processing worker on Amazon ECS using AWS Fargate.
To satisfy the requirements of decoupling and strict message ordering, the solutions architect must use an Amazon SQS FIFO queue. Additionally, because the processing service needs to run continuously as a background process, hosting it on Amazon ECS with AWS Fargate provides a scalable, managed, and continuous execution environment.

Step-by-Step Solution

1
Determine the message ordering requirement.
The transaction logs must be processed in the exact order they are received to ensure correct inventory updates.
This dictates the choice of queue type, requiring a First-In-First-Out mechanism.
2
Select the correct queue service.
Amazon SQS FIFO queue is selected to guarantee order and decouple the ingestion and processing layers.
Standard queues do not guarantee message order, while FIFO queues ensure strict ordering.
3
Analyze the consumer application workload characteristics.
The worker application must run continuously to process a steady stream of incoming messages.
This dictates the choice of compute service, favoring persistent container orchestration over short-lived serverless functions.
4
Select the correct compute service.
Amazon ECS with AWS Fargate is chosen to host the containerized worker continuously.
AWS Lambda is not suitable due to its 15-minute maximum execution timeout.

Key Concept

Decoupling message processing using SQS FIFO queues and deploying continuous consumers using Amazon ECS.
Rate this question