What should a solutions architect recommend to meet these requirements?
Store the transactions data into Amazon DynamoDB. Set up a rule in DynamoDB to remove sensitive data from every transaction upon write. Use DynamoDB Streams to share the transactions data with other applications.
Stream the transactions data into Amazon Kinesis Data Firehose to store data in Amazon DynamoDB and Amazon S3. Use AWS Lambda integration with Kinesis Data Firehose to remove sensitive data. Other applications can consume the data stored in Amazon S3.
Stream the transactions data into Amazon Kinesis Data Streams. Use AWS Lambda integration to remove sensitive data from every transaction and then store the transactions data in Amazon DynamoDB. Other applications can consume the transactions data off the Kinesis data stream.
Store the batched transactions data in Amazon S3 as files. Use AWS Lambda to process every file and remove sensitive data before updating the files in Amazon S3. The Lambda function then stores the data in Amazon DynamoDB. Other applications can consume transaction files stored in Amazon S3.
Explanations:
While DynamoDB can store transaction data, it does not provide a built-in mechanism to automatically remove sensitive data upon write. DynamoDB Streams can share data but isn’t designed for real-time processing of sensitive data before storage.
Kinesis Data Firehose is primarily used for batch loading and does not provide real-time data processing capabilities needed for sensitive data removal before storage. This option also complicates the architecture unnecessarily.
This option uses Kinesis Data Streams to stream transactions in real time, allowing AWS Lambda to process each transaction, remove sensitive data, and then store it in DynamoDB for low-latency access. This meets all requirements for scalability and data protection.
Storing batched transactions as files in S3 is not suitable for near-real-time processing. The method of using Lambda to process files does not align with the requirement for immediate processing and sharing of transaction data.