A Solutions Architect is responsible for redesigning a legacy Java application to improve its availability, data durability, and scalability. Currently, the application runs on a single high-memory Amazon EC2 instance. It accepts HTTP requests from upstream clients, adds them to an in-memory queue, and responds with a
200 status. A separate application thread reads items from the queue, processes them, and persists the results to an Amazon RDS MySQL instance. The processing time for each item takes 90 seconds on average, most of which is spent waiting on external service calls, but the application is written to process multiple items in parallel.
Traffic to this service is unpredictable. During periods of high load, items may sit in the internal queue for over an hour while the application processes the backlog.
In addition, the current system has issues with availability and data loss if the single application node fails.
Clients that access this service cannot be modified. They expect to receive a response to each HTTP request they send within 10 seconds before they will time out and retry the request.
Which approach would improve the availability and durability of the system while decreasing the processing latency and minimizing costs?
jay1ram2
Highly Voted 3 years, 11 months agovkbajoria
3 years, 9 months agoVrushaliD
3 years, 10 months agoLisX
3 years, 9 months agoAWSum1
Highly Voted 3 years, 9 months agoSkyZeroZx
Most Recent 2 years, 1 month agoTechX
3 years, 1 month agoravisar
3 years, 2 months agojj22222
3 years, 4 months agovbal
3 years, 8 months agoWhyIronMan
3 years, 9 months agoChubb
3 years, 9 months agosumaju
1 year, 8 months agoKian1
3 years, 10 months agoEbi
3 years, 10 months agoBulti
3 years, 10 months agoBritts
3 years, 10 months agobeebatov
3 years, 9 months agoDashL
3 years, 9 months agoDashL
3 years, 9 months agoT14102020
3 years, 10 months agojackdryan
3 years, 10 months agoCYL
3 years, 10 months agoNikkyDicky
3 years, 10 months ago