Sobes.tech
Junior — Middle

How did you interact with a service that was temporarily unresponsive in your project?

sobes.tech AI

Answer from AI

If a service was temporarily unresponsive, I implemented several approaches to ensure resilience:

  • Using retries with exponential backoff to avoid overloading the service.
  • Implementing a Circuit Breaker pattern that disables calls to the problematic service temporarily, allowing the system to recover quickly.
  • Logging and monitoring errors for timely response.

For example, using the Resilience4j library in Java, you can configure a Circuit Breaker and Retry:

CircuitBreaker circuitBreaker = CircuitBreaker.ofDefaults("myService");
Retry retry = Retry.ofDefaults("myServiceRetry");

Supplier<String> decoratedSupplier = CircuitBreaker.decorateSupplier(circuitBreaker, () -> callRemoteService());
decoratedSupplier = Retry.decorateSupplier(retry, decoratedSupplier);

Try<String> result = Try.ofSupplier(decoratedSupplier);

This approach helps make interactions with unreliable services more resilient.

How did you interact with a service that was… - sobes.tech