A city’s microservices team must ingest a brittle on-premises mainframe feed into modern permit services without letting mainframe outages stall the new apps. Which loosely coupled pattern best isolates the modern tier?
Select an answer to reveal the explanation.
Short Explanation
Treat the mainframe like a cranky neighbor—don’t let it bang on your front door. Drop its feed into an SQS buffer and let modern apps pick up work when they’re ready.
Full Explanation
Putting an Amazon SQS queue between a brittle on-premises mainframe feed and modern municipal permit microservices creates an anti-corruption buffer that isolates failure domains. The pattern works because the integration producer can deposit durable messages into SQS whenever the mainframe feed is available, while modern services consume asynchronously at their own pace. When the mainframe stalls—common for aging civic systems—messages already in the queue remain available, retries stay bounded at the consumer, and the new apps keep processing previously ingested work instead of blocking on a synchronous mainframe call. SQS therefore acts as a civic shock absorber between legacy and cloud tiers.
Having each microservice open a synchronous JDBC session directly into the mainframe and retry forever fails by concept because it tightly couples every service’s availability to mainframe latency and outages; cascading retries amplify load and stall the modern tier. Placing the mainframe behind a public Network Load Balancer and calling it from every service with no buffer fails because an NLB improves reachability, not durability or decoupling—without a durable queue, each caller still shares the mainframe’s failure domain and may expose a sensitive legacy system more broadly. Storing mainframe credentials in instance userdata and polling from every Auto Scaling instance fails because credential sprawl and uncoordinated polling increase security risk and thundering-herd load without providing a shared durable anti-corruption layer.
Exam caveat: SQS alone does not transform mainframe record formats—poison messages, schema drift, and idempotent consumer design still need explicit handling. Operational check: measure mainframe outage windows against SQS retention, configure a dead-letter queue for poison permits, and verify that modern services continue draining backlog after a controlled mainframe disconnect drill.