Migrating Auction Platform to AWS: Designing the Migration Plan

Designing the Migration Plan

Prev Question Next Question

Question

A company has run a major auction platform where people buy and sell a wide range of products.

The platform requires that transactions from buyers and sellers get processed in exactly the order received.

At the moment, the platform is implemented using RabbitMQ which is a light-weighted queue system.

The company consulted you to migrate the on-premise platform to AWS.

How should you design the migration plan? (Select TWO)

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

Correct Answer - A, C.

SQS has 2 types - standard queue and FIFO queue.

In this case, the FIFO queue should be chosen as the order of message processing is critical to the application.

FIFO queue has the below key features.

Option A is CORRECT: Because the SQS FIFO queue can help with the message processing in the right order.

Option B is incorrect: Because the SQS standard queue may have an issue that some messages are handled in the wrong sequence.

Option C is CORRECT: Because the message group ID is a feature to help with the FIFO delivery.

Messages that belong to the same message group are always processed one by one, in a strict order relative to the message group.

Option D is incorrect: Because deduplication ID is a method to help on preventing messages to be processed duplicately, which is not used to guarantee the message order.

AMAZON S3 AWS GLUE AWS GLUE DATA AMAZON ATHENA AMAZON
CRAWLERS CATALOG QUICKSIGHT

1. Setup a crawler to run periodically,
scan your data and automatically
populate the Glue Data Catalog

2 Once your data in the Glue Data Catalog, it is readily
available for querying in Amazon Athena and Amazon
Redshift Spectrum - no additional steps required!

d--------

AMAZON
REDSHIFT
SPECTRUM

Sure, I'd be happy to help!

When it comes to migrating the on-premise auction platform to AWS, there are a few things to consider in terms of maintaining the requirement that transactions are processed in the exact order received.

One of the main considerations is the choice of messaging service. RabbitMQ, the current messaging system being used, is a lightweight queue system that can be used to manage message queues. In AWS, there are two types of message queues that can be used to process messages: SQS standard and SQS FIFO.

SQS standard is a distributed queue system that offers high throughput, allowing for multiple consumers to receive messages simultaneously. This means that messages can be processed in a different order than they were received. Therefore, it's not a good fit for this use case.

On the other hand, SQS FIFO is designed to guarantee that messages are processed in the order they are received. This makes it a good fit for the requirements of the auction platform.

With that in mind, here are the two correct options for designing the migration plan:

A. When the bids are received, send the bids to an SQS FIFO queue before they are processed.

This option is a good solution because it utilizes SQS FIFO, which ensures that messages are processed in the order they are received. By sending the bids to the SQS FIFO queue before they are processed, the company can be sure that transactions will be processed in the exact order received.

B. When the users have submitted the bids from the frontend, the backend service delivers the messages to an SQS standard queue.

This option is not a good solution because, as mentioned earlier, SQS standard is not designed to guarantee message processing order. If the company were to use SQS standard, there would be no way to ensure that transactions were processed in the exact order received. Therefore, this option should not be chosen.

C. Add a message group ID to the messages before they are sent to the SQS queue so that the message processing is in a strict order.

This option is a feature of SQS FIFO and is not an alternative solution. SQS FIFO automatically orders messages based on their message group ID and ensures that messages within the same group are processed in the order they were received. While this option could be useful in combination with option A, it is not a separate solution.

D. Use an EC2 or Lambda to add a deduplication ID to the messages before the messages are sent to the SQS queue to ensure that bids are processed in the right order.

This option is not a good solution because it doesn't address the requirement to process transactions in the exact order received. While deduplication IDs can help prevent duplicate messages from being processed, they don't have any impact on the order in which messages are processed. Therefore, this option should not be chosen.

In summary, the two correct options for designing the migration plan are to send bids to an SQS FIFO queue before they are processed and to add a message group ID to messages before they are sent to the SQS queue. By utilizing SQS FIFO and message group IDs, the company can ensure that transactions are processed in the exact order received.