|
1 | 1 | # Changelog |
2 | 2 |
|
3 | | -## [Unreleased](https://github.com/openfga/java-sdk/compare/v0.8.3...HEAD) |
| 3 | +## [Unreleased](https://github.com/openfga/java-sdk/compare/v0.9.0...HEAD) |
| 4 | + |
| 5 | +## v0.9.0 |
| 6 | + |
| 7 | +### [0.9.0](https://github.com/openfga/java-sdk/compare/v0.8.3...v0.9.0) (2025-08-15) |
4 | 8 |
|
5 | 9 | ### Added |
6 | | -- feat: RFC 9110 compliant Retry-After header support with exponential backoff and jitter |
7 | | -- feat: Enhanced retry strategy with delay calculation |
8 | | -- feat: Retry-After header value exposed in error objects for better observability |
9 | | -- feat: Input validation for Configuration.minimumRetryDelay() to prevent negative values |
10 | | -- feat: Default value (100ms) now explicitly set for minimumRetryDelay configuration |
| 10 | +- RFC 9110 compliant `Retry-After` header support with exponential backoff and jitter |
| 11 | +- `Retry-After` header value exposed in error objects for better observability |
| 12 | +- `FgaError` now exposes `Retry-After` header value via `getRetryAfterHeader()` method |
11 | 13 |
|
12 | 14 | ### Changed |
| 15 | +- Enhanced retry strategy with delay calculation |
13 | 16 | - **BREAKING**: Maximum allowable retry count is now enforced at 15 (default remains 3) |
14 | | -- **BREAKING**: FgaError now exposes Retry-After header value via getRetryAfterHeader() method |
15 | 17 | - **BREAKING**: Configuration.minimumRetryDelay() now requires non-null values and validates input, throwing IllegalArgumentException for null or negative values |
16 | 18 |
|
17 | | -### Technical Details |
18 | | -- Implements RFC 9110 compliant Retry-After header parsing (supports both integer seconds and HTTP-date formats) |
19 | | -- Adds exponential backoff with jitter (base delay: 2^retryCount * 100ms, capped at 120 seconds) |
20 | | -- Validates Retry-After values between 1-1800 seconds (30 minutes maximum) |
21 | | -- Prioritizes Retry-After header delays over exponential backoff when present |
22 | | -- Unified retry behavior: All requests retry on 429s and 5xx errors (except 501 Not Implemented) |
23 | | - |
24 | 19 | **Migration Guide**: |
25 | 20 | - Update error handling code if using FgaError properties - new getRetryAfterHeader() method available |
26 | 21 | - Note: Maximum allowable retries is now enforced at 15 (validation added to prevent exceeding this limit) |
27 | 22 | - **IMPORTANT**: Configuration.minimumRetryDelay() now requires non-null values and validates input - ensure you're not passing null or negative Duration values, as this will now throw IllegalArgumentException. Previously null values were silently accepted and would fall back to default behavior at runtime. |
28 | 23 |
|
| 24 | +### Fixed |
| 25 | +- Fixed issue where telemetry metrics are not being exported correctly [#590](https://github.com/openfga/sdk-generator/pull/590) |
| 26 | +- Fixed issue with non-transactional write error handling [https://github.com/openfga/sdk-generator/pull/573](https://github.com/openfga/sdk-generator/pull/573) |
| 27 | + |
29 | 28 | ## v0.8.3 |
30 | 29 |
|
31 | 30 | ### [0.8.3](https://github.com/openfga/java-sdk/compare/v0.8.2...v0.8.3) (2025-07-15) |
|
0 commit comments