A logistics company is designing an automated warehouse inventory synchronization system. When items are scanned at receiving stations, inventory update events are generated. These events must be delivered to three separate systems: a centralized inventory database, a third-party vendor replenishment system, and a real-time shipping analytics dashboard. The centralized inventory database must process the events in the exact chronological order they were generated to avoid reconciliation errors, whereas the other systems can process events in any order. If any downstream system is unavailable, it must not impact the others, and the failed events must be retried automatically. Which solution meets these requirements with the least operational overhead?
- Publish the inventory update events to an Amazon SNS FIFO topic. Subscribe three Amazon SQS FIFO queues to the SNS FIFO topic, with each queue consuming messages for one of the downstream systems.Answer
- BPublish the inventory update events to a standard Amazon SNS topic. Subscribe three standard Amazon SQS queues to the SNS topic, with each queue consuming messages for one of the downstream systems.
- CPublish the inventory update events to a single Amazon SQS FIFO queue. Configure the centralized inventory database, vendor replenishment system, and shipping analytics dashboard to poll this queue and delete messages after processing.
- DPublish the inventory update events to an Amazon Kinesis data stream. Provision a single shard and configure the three downstream systems to consume the events from the stream using the Kinesis Client Library (KCL).