A ride-sharing platform needs to design an ingestion pipeline to process GPS location updates from its fleet of vehicles. During peak hours, the system receives approximately write requests per second, with an average payload size of per update. The GPS data must be processed in real-time with sub-second latency for immediate routing and ETA calculations. Additionally, the data must be transformed into Parquet format and stored in Amazon S3 for historical analysis. Which architecture meets these requirements with the highest performance and scalability?
- Ingest the data using Amazon Kinesis Data Streams configured in On-Demand capacity mode. Process the stream in real-time with a custom consumer application for ETA calculations. Configure Amazon Data Firehose to consume from the same Kinesis stream, transform the data to Parquet format using an AWS Lambda function, and deliver it to an Amazon S3 Standard bucket.Answer
- BIngest the data using Amazon Kinesis Data Streams configured in Provisioned capacity mode with shards. Process the stream in real-time with a custom consumer application for ETA calculations. Configure Amazon Data Firehose to consume from the same Kinesis stream, transform the data to Parquet format using an AWS Lambda function, and deliver it to an Amazon S3 Standard bucket.
- CIngest the data using a standard Amazon SQS queue to decouple the ingestion layer. Configure the real-time application to poll the queue to compute ETAs, and configure a fleet of EC2 instances to retrieve the messages, transform them to Parquet format, and write them to an Amazon S3 Standard bucket.
- DIngest the data using Amazon Kinesis Data Streams configured in On-Demand capacity mode. Process the stream in real-time with a custom consumer application for ETA calculations. Configure Amazon Data Firehose to consume from the same Kinesis stream, transform the data to Parquet format using an AWS Lambda function, and deliver the output to an Amazon S3 Standard-IA bucket with an S3 Lifecycle policy to delete the files after days.
Answer
Ingest the data using Amazon Kinesis Data Streams configured in On-Demand capacity mode. Process the stream in real-time with a custom consumer application for ETA calculations. Configure Amazon Data Firehose to consume from the same Kinesis stream, transform the data to Parquet format using an AWS Lambda function, and deliver it to an Amazon S3 Standard bucket.
The correct answer provides an ingestion layer (Amazon Kinesis Data Streams in On-Demand capacity mode) that dynamically scales to handle peak volumes of records per second (). It supports multi-consumer routing: a custom real-time application can query Kinesis directly to keep latency below one second for route modeling, while Amazon Data Firehose consumes the same stream asynchronously to convert payloads to Parquet using AWS Lambda and delivers them to Amazon S3 Standard for long-term historical query optimization.
Step-by-Step Solution
Key Concept
Selecting and sizing ingestion services (Kinesis Data Streams vs. SQS vs. Firehose) to meet strict throughput, ordering, and format transformation performance requirements.
Estimated Time:1m 30s