Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions fern/products/sdks/deep-dives/retries-with-backoff.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -155,3 +155,28 @@ It's also possible to override the retry limit on a per-request basis.
</CodeBlock>
</CodeBlocks>

### Customizing the backoff schedule

The Java SDK exposes client builder options to tune the exponential backoff applied between retries, alongside `maxRetries`.

<CodeBlocks>
<CodeBlock title="Java">
```java {5-7}
import com.imdb.ImdbClient;

ImdbClient client = new ImdbClient.Builder()
.maxRetries(3)
.initialRetryDelayMillis(500)
.maxRetryDelayMillis(30000)
.retryJitterFactor(0.1)
.build();
```
</CodeBlock>
</CodeBlocks>

| Option | Description | Default |
|--------|-------------|---------|
| `initialRetryDelayMillis` | Initial delay in milliseconds used for exponential backoff. | `1000` |
| `maxRetryDelayMillis` | Maximum delay in milliseconds between retries. | `60000` |
| `retryJitterFactor` | Jitter factor between 0 and 1 applied to retry delays. | `0.2` |

2 changes: 1 addition & 1 deletion fern/products/sdks/generators/java/configuration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ Controls Jackson's JSON serialization behavior for optional fields. Use 'non-emp
</ParamField>

<ParamField path="maxRetries" type="number" required={false} toc={true}>
The default number of retries for failed requests. When not set, the generated SDK uses its own built-in default. SDK users can still override this per-request via request options.
The default number of retries for failed requests. When not set, the generated SDK uses its own built-in default. SDK users can still override this per-request via request options, and can tune the [backoff schedule between retries](/learn/sdks/deep-dives/retries-with-backoff#customizing-the-backoff-schedule) at client instantiation.
</ParamField>

<ParamField path="offset-semantics" type="'item-index' | 'page-index'" required={false} toc={true}>
Expand Down
Loading