Question

Difficulty: Very hardDecoupling Architectures and Event-Driven Messaging

A financial services firm is designing a real-time transaction ledger. The ledger must process deposit and withdrawal events in the exact order they are initiated for each individual bank account to prevent overdrafts. The event volume routinely spikes to 2,5002,500 transactions per second. Two independent downstream applications—a ledger database writer and a real-time fraud detection engine—must process every transaction. The architecture must guarantee that duplicate messages sent within a 5-minute window are discarded, and it must minimize operational overhead.

Which combination of actions should a solutions architect recommend to meet these requirements? (Select TWO.)

  1. Create an Amazon Simple Notification Service (Amazon SNS) FIFO topic and subscribe two Amazon Simple Queue Service (Amazon SQS) FIFO queues to the topic, one for each downstream application.Answer
  2. Enable high-throughput mode on the SQS FIFO queues, and configure the transaction events to use the bank account ID as the message group ID.Answer
  3. C
    Create a single Amazon SQS FIFO queue and configure both downstream applications to poll from the same queue simultaneously.
  4. D
    Create an Amazon SNS standard topic and subscribe two Amazon SQS standard queues to the topic, enabling message deduplication on the queues.
  5. E
    Provision an Amazon Kinesis Data Stream with 3 shards, and configure both downstream applications as consumers using the Kinesis Client Library (KCL).

Answer

Create an Amazon SNS FIFO topic with two SQS FIFO queues subscribed to it, enable high-throughput mode on the SQS FIFO queues, and use the bank account ID as the message group ID.
To achieve both event fan-out and strict sequencing under a high-throughput scenario, the architecture must utilize Amazon SNS FIFO and Amazon SQS FIFO. An SNS FIFO topic preserves ordering and deduplication when forwarding events to subscribed SQS FIFO queues. Setting the bank account ID as the message group ID allows the SQS FIFO queue to group related messages together for ordered processing while enabling horizontal scaling across multiple partitions. High-throughput mode allows the FIFO queues to scale dynamically and accommodate the 2,5002,500 TPS volume, while SQS FIFO's native deduplication satisfies the 5-minute window without custom application logic.

Step-by-Step Solution

1
Analyze ordering and throughput constraints.
The system requires strict ordering per bank account. The throughput can reach 2,5002,500 TPS, which exceeds the standard SQS FIFO queue limit of 300300 TPS.
This establishes that SQS FIFO queues with high-throughput mode enabled are necessary to handle the traffic while guaranteeing order.
2
Design the fan-out mechanism.
Use an Amazon SNS FIFO topic to publish the events, and subscribe two separate Amazon SQS FIFO queues to this topic.
This allows both independent downstream applications to receive a copy of every transaction event without competing for messages, while preserving ordering and deduplication properties.
3
Configure message grouping and deduplication.
Set the bank account ID as the message group ID and leverage SQS FIFO's native 5-minute deduplication window.
Using the bank account ID as the message group ID ensures that events for the same account are sequenced correctly while allowing different accounts to be processed concurrently. SQS FIFO's native deduplication discards duplicates within 5 minutes without additional coding.

Key Concept

Combining Amazon SNS FIFO and SQS FIFO queues to achieve high-throughput event fan-out with strict ordering and native deduplication.
Estimated Time:3m 0s
Rate this question