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 messages per second.
Which combination of steps should a solutions architect take to design this architecture? (Select TWO.)
- Create an Amazon SNS FIFO topic and subscribe two Amazon SQS FIFO queues to the topic, one for each backend application.Answer
- 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
- CCreate 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.
- DCreate 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 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
Key Concept
Decoupling event-driven architectures with high-throughput ordered message delivery using SNS FIFO and SQS FIFO.