A developer is designing a serverless application that customers use to select seats for a concert venue. Customers send the ticket requests to an Amazon API Gateway API
with an AWS Lambda function that acknowledges the order and generates an order ID.
The application includes two additional Lambda functions: one for inventory management and one for payment processing. These two Lambda functions run in parallel and write the order to an Amazon Dynamo DB
table.
The application must provide seats to customers according to the following requirements. If a seat is accidently sold more than once, the first order that the application received must get the seat. In these cases, the application must process the payment for only the first order. However, if the first order is rejected during payment processing, the second order must get the seat. In these cases, the application must process the payment for the second order.
Which solution will meet these requirements?
- Send the order ID to an Amazon Simple Notification Service (Amazon SNS) FIFO
topic that fans out to one Amazon Simple Queue Service (Amazon SQS) FIFO
queue for inventory management and another SQS FIFO queue for payment processing. - Change the Lambda function that generates the order ID to initiate the
Lambda function for inventory management. Then initiate the Lambda function for payment processing. - Send the order ID to an Amazon Simple Notification Service (Amazon SNS)
topic. Subscribe the Lambda functions for inventory management and payment processing to the topic. - Deliver the order ID to an Amazon Simple Queue Service (Amazon SQS) queue.
Configure the Lambda functions for inventory management and payment processing to poll the queue.
Reveal Solution Next Question