Question

Difficulty: HardDecoupling Architectures and Event-Driven Messaging

A chemical manufacturing plant uses IoT sensors to monitor reactor temperatures and pressure levels. The telemetry updates from each reactor contain a `reactor_id` and a `timestamp` and must be processed in the exact sequence they are generated to prevent incorrect automated safety interventions. The plant needs to distribute these updates to two separate backend applications: a real-time monitoring dashboard and a long-term analytical warehouse. The system must handle message spikes, prevent data loss during backend downtime, and support up to 9,0009,000 messages per second.

Which combination of steps should a solutions architect take to design this architecture? (Select TWO.)

  1. Create an Amazon SNS FIFO topic and subscribe two Amazon SQS FIFO queues to the topic, one for each backend application.Answer
  2. Enable high-throughput FIFO mode on the Amazon SQS FIFO queues and configure the telemetry messages to use the `reactor_id` as the message group ID.Answer
  3. C
    Create an Amazon SNS standard topic and subscribe two Amazon SQS standard queues to the topic, configuring the message body with the `reactor_id` to maintain processing order.
  4. D
    Create a single Amazon SQS FIFO queue and configure both backend applications to poll messages concurrently from this queue using the `reactor_id` as a message attribute filter.

Answer

To support fan-out with message ordering and high throughput, the solutions architect should create an Amazon SNS FIFO topic subscribing two Amazon SQS FIFO queues (one for each backend), enable high-throughput FIFO mode, and use the reactor ID as the message group ID.
To design a resilient, decoupled architecture that maintains message ordering during fan-out, a combination of Amazon SNS FIFO and Amazon SQS FIFO is required. The SNS FIFO topic allows a single publish action to fan out to multiple queues. Each downstream application gets its own SQS FIFO queue, ensuring independent processing, buffering, and resilience against downtime. To handle 9,0009,000 messages per second, high-throughput mode must be enabled on the SQS FIFO queues, and the `reactor_id` must be used as the message group ID to ensure messages from the same reactor are processed in sequence while allowing different reactors to be processed in parallel.

Step-by-Step Solution

1
Address the multi-application fan-out requirement with strict ordering.
Combine Amazon SNS FIFO and Amazon SQS FIFO queues. SNS FIFO allows fanning out the message stream to multiple downstream subscribers while maintaining the order.
Each backend application must receive all updates. Creating two separate SQS FIFO queues subscribed to a single SNS FIFO topic ensures both applications get a complete copy of the telemetry data independently.
2
Scale the message ingestion to support 9,0009,000 messages per second.
Enable high-throughput mode on the SQS FIFO queues.
Standard SQS FIFO queues are limited to 300300 transactions per second (or 3,0003,000 with batching). High-throughput mode allows scaling to the required 9,0009,000 messages per second.
3
Group and sequence messages correctly.
Use the `reactor_id` as the message group ID for FIFO processing.
The message group ID determines which messages must be processed sequentially. Using `reactor_id` guarantees ordered delivery within each individual reactor while enabling concurrent processing across different reactors.

Key Concept

Decoupling event-driven architectures with high-throughput ordered message delivery using SNS FIFO and SQS FIFO.
Rate this question