...

/

Solution: Retry Failed Requests with Custom Policies

Solution: Retry Failed Requests with Custom Policies

Implement retry strategies that define how failed requests are retried and plug them into a RequestService context that delegates retry logic dynamically.

We'll cover the following...

Solution explanation

  • Lines 2–11: Define utility helpers:

    • delay(ms) simulates waiting between retries.

    • unstableRequest() randomly succeeds or fails, modeling unreliable network behavior.

  • Lines 14–29: The RequestService class is the context.

    • It delegates all retry behavior to the injected strategy’s .execute() method.

    • On success, logs the final result.

    • On repeated failure, logs a consistent “failed after all retries” message.

  • Lines 32–40: NoRetryPolicy represents the simplest strategy—try once, fail fast.

    • No retry logic; exceptions bubble up directly.

    • This matches scenarios where retries are undesired or unsafe (e.g., non-idempotent operations).

  • Lines ...