Which solution meets these requirements?
Create multiple Amazon Kinesis data streams based on the quote type. Configure the web application to send messages to the proper data stream. Configure each backend group of application servers to pool messages from its own data stream using the Kinesis Client Library (KCL).
Create multiple Amazon Simple Notification Service (Amazon SNS) topics and register Amazon SQS queues to their own SNS topic based on the quote type. Configure the web application to publish messages to the SNS topic queue. Configure each backend application server to work its own SQS queue.
Create a single Amazon Simple Notification Service (Amazon SNS) topic and subscribe the Amazon SQS queues to the SNS topic. Configure SNS message filtering to publish messages to the proper SQS queue based on the quote type. Configure each backend application server to work its own SQS queue.
Create multiple Amazon Kinesis Data Firehose delivery streams based on the quote type to deliver data streams to an Amazon Elasticsearch Service (Amazon ES) cluster. Configure the web application to send messages to the proper delivery stream. Configure each backend group of application servers to search for the messages from Amazon ES and process them accordingly.
Explanations:
While Kinesis data streams can handle real-time data and separate processing by quote type, managing multiple streams adds complexity and does not inherently guarantee message durability within 24 hours. Additionally, KCL requires more operational overhead.
This solution introduces multiple SNS topics and SQS queues but lacks a direct filtering mechanism, which may complicate the routing of messages. This could lead to higher operational complexity and does not ensure that quotes are processed specifically by quote type efficiently.
Using a single SNS topic with SQS queues allows for effective message filtering by quote type. This setup simplifies the architecture, ensures messages are not lost, and guarantees that each quote type can be processed by its dedicated queue within the required timeframe.
Kinesis Data Firehose is primarily for data delivery rather than real-time message processing. Using Amazon ES for quote processing adds unnecessary complexity, and it does not fit the requirement of responding within 24 hours as effectively as the SQS approach.