A financial services company is migrating its transaction processing system to AWS. The system currently uses an application server that synchronously writes transaction logs to a database and simultaneously invokes a third-party credit check API. If either the database or the third-party API becomes unresponsive, the entire transaction fails, resulting in customer dissatisfaction. Which architectural design modification should the company implement to align with AWS cloud design principles and improve the system's resilience?
- AScale the application server vertically to a larger EC2 instance size to handle the concurrent connections and implement a retry mechanism with exponential backoff for the credit check API.
- BPlace the application server and the database within a single Auto Scaling group that scales out dynamically based on database CPU utilization.
- Introduce an Amazon Simple Queue Service (Amazon SQS) queue to buffer transaction requests, processing them asynchronously to isolate the application server from database or API downtime.Cevap
- DConfigure synchronous multi-region database replication to guarantee high availability and eliminate database write latency.
Cevap
Introduce an Amazon Simple Queue Service (Amazon SQS) queue to buffer transaction requests, processing them asynchronously to isolate the application server from database or API downtime.
The correct design uses Amazon Simple Queue Service (Amazon SQS) to decouple the components. By buffering transaction requests in a queue and processing them asynchronously, the core application server is isolated from downstream database latency or third-party credit check API downtime. This aligns with the AWS design principles of loose coupling and designing for failure, ensuring the system remains responsive even if dependencies fail.
Adım Adım Çözüm
Anahtar Kavram
Loose coupling and design for failure using asynchronous messaging
Tahmini Süre:2m 0s