Google Cloud Professional Cloud DevOps Engineer — Question 195
You manage a microservice that provides a public-facing API (Service A). Service A is time-critical and has a response SLO of 500 ms. Service A makes synchronous calls to internal API (Service B) that is known to become unreliable under heavy load, resulting in connection timeout errors or 500 errors. Service B is used to collect request information for the transactions processed by Service A. You need to mitigate the impact of Service B issues on your Service A users. What should you do?
Answer options
- A. Increase the size of the queue in front of the thread pool used by Service A instances.
- B. Implement retry logic with exponential back-offs when calling Service B.
- C. Implement a circuit breaker to store the request data in a database.
- D. Implement rate limiting in Service A to limit the number of requests to Service B.
Correct answer: C
Explanation
The correct answer is C, as implementing a circuit breaker allows Service A to avoid further calls to Service B during periods of unreliability, storing the necessary request data instead. Option A does not address the underlying issue with Service B, while B could still lead to timeouts if Service B is down, and D may reduce load but does not prevent errors from affecting users.